Query的术语分组并找到大于3的数字的差异?

时间:2015-10-16 07:27:30

标签: sql

大家好,我是一个SQL菜鸟,无法弄清楚这一点,不知道我需要找到哪些术语才能弄明白,所以即使只是正确的研究条款也会有很大帮助。

那就是说,这是我需要查询的表: Port Table

根据该表,我需要能够找出哪些国家/地区有两个以上的端口,哪些端口的差异超过3个。

数据的格式应如下所示: Final Query Format

1 个答案:

答案 0 :(得分:0)

对于您的第一个问题,哪些国家/地区有两个以上的端口,您可以使用

SELECT COUNTRY FROM TABLENAME GROUP BY COUNTRY HAVING COUNT(PORTNAME) > 2

现在有了这个结果,你必须找到“哪些端口的差异超过3个。” 所以,你可以像

一样写
SELECT A.PORTNAME AS FIRSTPORT, A.NUMDOCKS AS FIRSTNUM, 
   B.PORTNAME AS SECONDPORT, B.NUMDOCKS AS SECONDOCKS,
   A.COUNTRY
FROM TABLENAME AS A, 
     TABLENAME AS B,
    (SELECT COUNTRY FROM TABLENAME GROUP BY COUNTRY HAVING COUNT(PORTNAME) > 2) AS C
WHERE A.COUNTRY = C.COUNTRY
AND   B.COUNTRY = C.COUNTRY
AND   3 < (A.NUMDOCKS - B.NUMDOCKS)