对大于3的数进行分组和查找差值的查询术语

  • 本文关键字:查找 查询 术语 大于 sql
  • 更新时间 :
  • 英文 :


大家好,我是一个SQL新手,不能弄清楚这个问题,也不确定我需要寻找什么术语来弄清楚,所以即使只是适当的术语来研究也会有很大的帮助。

也就是说,这是我需要查询的表:港口表

有了这个表格,我需要能够找出哪些国家有两个以上的港口,哪些港口的差异超过3个码头。

数据应该像这样格式化:最终查询格式

对于你的第一个问题,哪些国家有两个以上的港口,你可以使用

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)

最新更新