SQL 查询单列不同区间值

SQL 查询单列不同区间值,第1张

SELECT convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END)), count() from TTT

GROUP BY convert(varchar(10),convert(int,Score))+"~"+convert(varchar(10),convert(int, CASE WHEN Score=ceiling(Score) THEN Score+1 ELSE ceiling(Score) END))

ORDER BY 1

注意:0~1返回0次的结果出不来。

如一定要求0~1的也出结果,你还得把需求说得更清楚一下。比如说将上述ID为3的数据改为32,那么4~5的也将为0而查不到,还要显示4~5为0吗?5~6、6~7呢?简而言之,要求高的话,需要说明Score的最小值和最大值。

SELECT BSTART_PRICE||'元到'||BEND_PRICE||'元',

SUM(CASE WHEN APRICE >BSTART_PRICE AND APRICE <=BEND_PRICE THEN 1 ELSE 0 END)

FROM 产品价格表 A,价格区间表 B WHERE APRICE >BSTART_PRICE AND APRICE<=BEND_PRICE

GROUP BY BSTART_PRICE||'元到'||BEND_PRICE||'元'

只能这样了,象你结果表里最左边那么显示实在太难,只能一个个的去定义呀

-----补充----

好像也行,排序有点费劲

SELECT CASE

WHEN bstart_price || '元到' || bend_price || '元' LIKE '0%'

THEN '10元以下'

WHEN bstart_price || '元到' || bend_price || '元' LIKE '4%'

THEN '40元以上'

ELSE bstart_price || '元到' || bend_price || '元'

END,

SUM (CASE

WHEN aprice >= bstart_price AND aprice <= bend_price

THEN 1

ELSE 0

END

)

FROM 产品价格表 a, 价格区间表 b

WHERE aprice >= bstart_price AND aprice <= bend_price

GROUP BY CASE

WHEN bstart_price || '元到' || bend_price || '元' LIKE '0%'

THEN '10元以下'

WHEN bstart_price || '元到' || bend_price || '元' LIKE '4%'

THEN '40元以上'

ELSE bstart_price || '元到' || bend_price || '元'

END

以上就是关于SQL 查询单列不同区间值全部的内容,包括:SQL 查询单列不同区间值、oracle 一条sql查询出价格在各个区间的统计、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9398032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存