这道题主要是考查SQL编程中,对函数的综合运用。
根据题目要求,已知一组点的坐标(xy),需要计算出所有点之间的最短距离。
那么,一般来说,我们可以计算出任意两点之间的距离,然后取一个最小值即可。
因为源表Point2D保留的是一个个孤立的点, 在计算两两之间的距离时,需要所有点之间的关系的排列组合。提到排序组合,我们知道,可以使用笛卡尔积来实现。
但笛卡尔积本身返回的结果,是包含自身与自身的关系的,这一类关系需要剔除。
因此,使用下面的语句,可以获取所有点的两两组合,且不包括自身与自身的组合。
有了以上组合,我们就可以根据公式计算出所有点之间的距离:
从上面公式来看,我们需要平方的函数pow,还需要取根号的函数sqrt。因为最后结果需要保留2位小数,所以还需要round函数。