【问题标题】:SQL select in select where get from result maxSQL select in select where get from result max
【发布时间】:2014-08-21 11:42:39
【问题描述】:

我有一个名为 works 的表,其列名:group_id, name, money

我的查询选择 group_id 并像这样求和:

select group_id, sum(money) as time FROM works group by group_id

此查询产生以下结果

现在我需要补充查询以找到最大金额和组 ID。我想得到以下结果:

group id: 2, money: 320 

【问题讨论】:

    标签: mysql


    【解决方案1】:
    select g.group_name, sum(money) as time
    from works w
    INNER JOIN group g on g.group_id = w.group_id
    group by w.group_id
    order by sum(money) desc
    limit 1;
    

    【讨论】:

    • 贴出表组的结构
    【解决方案2】:

    如果我理解正确,你可以直接按钱订购,然后选择第一行:

    select group_id, sum(money) as time
    from works
    group by group_id
    order by sum(money) desc
    limit 1;
    

    【讨论】:

    • return group_id: 2, money: 320. 我有另一个表Groups 他有两列:idname,group_id 列值来自表Groups id 列值。我现在如何返回而不是组 ID:2 写名称。
    【解决方案3】:

    试试这个

    select group_id, sum(money) as money as time FROM works group by group_id having max(money)
    

    【讨论】:

      猜你喜欢
      • 2017-09-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 2022-11-12
      • 2012-12-11
      相关资源
      最近更新 更多