如何使用SQL从数据库中检索不同的值范围?

时间:2016-01-31 15:06:05

标签: sql sql-server tsql

我目前正在尝试检索灯光值并使用ajax饼图工具将它们排序为饼图。我真的需要帮助SQL语句来检索和计算不同的值集。

以下是我要检索的3组值:

1)检索并计算< 24

2)检索并计算24到30之间的lightValues

3)检索并计算>的lightValues。 30

饼图是我想要实现的结果。目前我正在使用原始数据来显示我想要实现的目标。

饼图图片

enter image description here

数据库图片:

enter image description here

2 个答案:

答案 0 :(得分:4)

单程

select
    count(case when lightvalue < 24 then 1 end),
    count(case when lightvalue between 24 and 30 then 1 end),
    count(case when lightvalue > 30 then 1 end)
from tbl

答案 1 :(得分:3)

您可以使用UNION ALL

SELECT 'less_than_24' AS group_name, COUNT(*) AS counter
FROM table_name
WHERE lightValue < 24
UNION ALL
SELECT 'from_24_to_30', COUNT(*) AS counter
FROM table_name
WHERE lightValue BETWEEN 24 AND 30
UNION ALL
SELECT 'more_than_30', COUNT(*) AS counter
FROM table_name
WHERE lightValue > 30;

LiveDemo

输出:

╔═══════════════╦═════════╗
║  group_name   ║ counter ║
╠═══════════════╬═════════╣
║ less_than_24  ║       4 ║
║ from_24_to_30 ║       2 ║
║ more_than_30  ║       2 ║
╚═══════════════╩═════════╝