代码之家  ›  专栏  ›  技术社区  ›  leora Matt Lacey

获取“最常用查询”的正确SQL是什么

  •  1
  • leora Matt Lacey  · 技术社区  · 14 年前

    我有一张桌子叫

    身份证件
    车号

    我还有一张桌子

    身份证件
    名称

    我想运行一个查询,返回每辆车最多的驱动器(在我摆脱超过一次的车上)

    福特10
    宝马8

    吉普车4

    select car_id, COUNT(car_id) as Cid    
    from Rides
    group by car_id
    order by cid desc
    

    但我想不出如何排除只有一次骑行的项目。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Brenton Alker    14 年前

    要过滤派生列,可以使用HAVING子句。

    select car_id, COUNT(car_id) as Cid    
    from Rides
    group by car_id
    having Cid > 1
    order by cid desc
    

    或者

    having COUNT(car_id) > 1
    

    如果您的特定品牌的SQL不喜欢在Having子句中使用别名。

        2
  •  1
  •   Scot Hauder    14 年前

    看一下HAVING子句——双关语不是有意的

        3
  •  0
  •   Randy    14 年前

    作业?

    尝试按车号分组。。。