theo789
Metz
采纳率91.7%
2015-05-22 11:05 阅读 2.1k

求助:SQL group by 问题

5

表格如下:
图片说明
得出结果如下:
图片说明

求精简的SQL语句

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    guwei4037 极简吧 2015-05-22 12:54
     with a as(
    select rank() over (partition by 商店 order by 商店,sum(价钱) desc) as rowid,
    商店,sum(价钱) as 价钱和,备注 from 产品 group by 备注,商店),
    
    b as(
    select 商店,价钱和,备注 from a where rowid = 1),
    
    c as(
    select 商店,sum(价钱和) as 卖出价钱和 from a group by 商店)
    
    select c.商店,c.卖出价钱和,b.备注 as 卖出价钱最高货物,b.价钱和 as 卖出最高价格货物价格之和 
    from c inner join b on c.商店 = b.商店                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
    
    点赞 2 评论 复制链接分享
  • frank_20080215 frank_20080215 2015-05-22 13:07

    select 商店, 卖出价钱和,卖出价钱最高货物, 卖出最高价格货物之和 from
    ((select 商店, sum(价钱) as 卖出价钱和 from table GROUP BY 商店) ta inner join
    (select 商店, max(sum(价钱)) as 卖出最高价格货物之和, 备注 as 卖出价钱最高货物
    from table GROUP BY 备注) tb on ta.商店 = tb.商店)

    点赞 1 评论 复制链接分享
  • bdmh bdmh 2015-05-22 11:21

    你这属于竖表变横表,sqlserver的话提供了对应的方法,或者用case语句我可以实现,网上有例子

    点赞 评论 复制链接分享
  • qq_26642363 qq_26642363 2015-05-22 11:36

    select 商店,count(货物) 卖出价钱和,max(备注) 卖出价钱最高货物,max(价钱) 卖出最高价格货物之和
    GROUP BY 商店

    点赞 评论 复制链接分享
  • qq_26642363 qq_26642363 2015-05-22 11:36

    select 商店,count(货物) 卖出价钱和,max(备注) 卖出价钱最高货物,max(价钱) 卖出最高价格货物之和
    GROUP BY 商店

    点赞 评论 复制链接分享
  • qq_26642363 qq_26642363 2015-05-22 11:36

    select 商店,count(货物) 卖出价钱和,max(备注) 卖出价钱最高货物,max(价钱) 卖出最高价格货物之和
    GROUP BY 商店

    点赞 评论 复制链接分享

相关推荐