MySQL - 填充级别范围 - 如何获取它?

标签 mysql range

我正在研究一个案例,其中我们有许多装满液体的 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/

相关文章:

mysql - 使用 EF 部署应用程序

返回包含 r 中预定范围之外的数据的列列表

html - 输入范围类型的步长参数

python - 在没有集合的情况下减去两个范围之间的重叠

python - 具有重复连续数字的范围

php - 如何从表单字段更新多个 mysql 行

mysql - MySQL中如何对多个字段进行排序?

mysql - 使用 mysql_query 构造中的变量作为值

mysql - MARIADB:索引不用于选择范围内的连接

php - 在 php 中的可用性计算逻辑