我怎样才能查询 MySQL 查询的结果并获得属于特定范围内的结果的 COUNT()?

How can I query the results of a MySQL query and get a COUNT() of the results that fall within a certain range?

感谢您抽出宝贵时间。

我有以下查询:

SELECT bike_id, 
  COUNT(trip_id) AS "trip_count", 
  COUNT(trip_id)/365 AS "avg_rides_per_day"
FROM 2017
GROUP BY bike_id;

这给了我想要的结果,这些结果是不同的 'bike_id'(因为没有重复),2017 年每次 'bike_id' 的所有游乐设施的计数,以及快速平均每个 'bike_id'.

的年份

从这里开始,id 想知道我是否可以根据上面查询的相同结果(因为此信息不存在于 table 中而不使用此查询)。例如:

0.0000-0.5000 有 328
0.5001-1.0000 有 211
1.0001-1.5000 有 101 (但在 table 格式中,范围是 headers)

希望这是有道理的。我觉得这是一个快速解决的问题,但我不是很好(总新手)。

谢谢!

所以我想通了,希望如果有新人 运行 解决这个问题,这可以帮助你一点点!:

SELECT COUNT(CASE WHEN avy BETWEEN 0.0000 AND 0.5000 THEN 1 ELSE NULL END) AS "0.0000-0.5000",
              COUNT(CASE WHEN avy BETWEEN 0.5001 AND 1.0000 THEN 1 ELSE NULL END) AS "0.5001-1.0000",
              COUNT(CASE WHEN avy BETWEEN 1.0001 AND 1.5000 THEN 1 ELSE NULL  END) AS "1.0001-1.5000",
              COUNT(CASE WHEN avy BETWEEN 1.5001 AND 2.0000 THEN 1 ELSE NULL END ) AS "1.5001-2.0000",
                    COUNT(CASE WHEN avy BETWEEN 2.0001 AND 2.5000 THEN 1 ELSE NULL  END) AS "2.0001-2.5000",
                    COUNT(CASE WHEN avy BETWEEN 2.5001 AND 3.0000 THEN 1 ELSE NULL END ) AS "2.5001-3.0000",
                    COUNT(CASE WHEN avy BETWEEN 3.0001 AND 3.5000 THEN 1 ELSE NULL END ) AS "3.0001-3.5000"
FROM (SELECT `bike_id`,
                1 * COUNT(`trip_id`)/365 AS avy
              FROM `2021`
              GROUP BY `bike_id`) AS averages;

结果是所有内容都整齐地在其自己的列中,指示范围(作为列 header)和落在该范围内的独特自行车的数量(作为每列中的唯一条目)。