我怎样才能查询 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)和落在该范围内的独特自行车的数量(作为每列中的唯一条目)。
感谢您抽出宝贵时间。
我有以下查询:
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)和落在该范围内的独特自行车的数量(作为每列中的唯一条目)。