魔灵雪010 2021-03-23 08:47 采纳率: 88.2%
浏览 47
已结题

SQL Server 商品表查数量,通过价格高低分组

在写一个sql,select * from (select count(*) m from Product where ProductPrice>100) more,(select count(*) l from Product where ProductPrice<100) less group by more.m, less.l

这条语句可以查出来俩列,m 商品价格>100的数量,l 商品价格<100的数量

这是表结构

语句结果:

我需要的效果是两个列,一个列的值为m,l   另一个列的值对应上面的8,47 ,但我查询到的m,l都是列名了,不重建表的情况下怎么把他俩列名放一个列里,求解求解

  • 写回答

4条回答 默认 最新

  • 德玛洗牙 2021-03-23 09:10
    关注

    是两行吧,第一行为:m,l   ,第二行为:8,47。

    select 
        concat(sum(case when ProductPrice>100 then 1 else 0 end),',',sum(case when ProductPrice<=100 then 1 else 0 end)) AS 'm,l' 
    FROM
        Product

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    魔灵雪010 2021-03-24 02:45

    谢谢大佬,第一次提问题,刚才看到去试了一下,是可以的,可能我的描述没有很清楚

    回复
    德玛洗牙 回复 魔灵雪010 2021-03-24 03:31

    select case when ProductPrice>100 then 'm' else 'l' end,COUNT(*) FROM Product GROUP BY 1;

    回复
    魔灵雪010 回复 德玛洗牙 2021-03-24 03:59

    代码还是不行。运行起来会报错,不过基本问题可以算解决了,后面的话,应该可以解决

    回复
    展开全部4条评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 已采纳回答 8月30日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部