我正在研究一个案例,其中我们有许多装满液体的 jar 。测量液体量并将信息存储在数据库中。此更新每 5 分钟进行一次。这里存储以下信息:
- 坦克ID
- 填充级别
- 时间戳
我想读取数据库并将每个 jar 分类为以下“填充水平”范围之一:
- 范围 A:0 - 40%
- 范围 B:40 - 75%
- 范围 C:75 - 100%
最后,我希望获得范围 A、B 和 C 范围内的储 jar 数量。我可以选择 DISTINCT TankId
的填充级别,但是这不起作用...
SELECT COUNT(DISTINCT tankId)
FROM TankDemo
WHERE (filllevel > 0 AND filllevel < 40);
显然它没有为我提供每个范围内正确的坦克数量。希望你们中的一些人对我如何获取这些数据提出建议。
非常感谢
最佳答案
您可以使用 CASE 语句来做到这一点:
SELECT sum(
CASE
WHEN filllevel>=0 and filllevel<40
THEN 1
ELSE 0
END) AS 'Range A',
sum(
CASE
WHEN filllevel>=40 and filllevel<=79
THEN 1
ELSE 0
END) AS 'Range B',
sum(
CASE
WHEN filllevel>79 and filllevel<=100
THEN 1
ELSE 0
END) AS 'Range C'
FROM TankDemo ;
关于MySQL - 填充级别范围 - 如何获取它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45628852/