mysql - mysql LEFT JOIN 后跟 GROUP BY 与 BETWEEN 范围
问题描述
我很困惑我应该如何进行。这是我当前的 LEFT JOIN 命令,它工作得很好:
SELECT t1.avg_temperature as T_aver,
t2.new_confirmed as count
FROM 3_day_avg as t1
LEFT JOIN table2 as t2 on t1.date = t2.date
这非常适合制作这张桌子:
T_aver |count|
-----------------
-0.2 | 2 |
3 | 2 |
5 | 1 |
-2.3 | 4 |
22 | 0 |
但现在我想更进一步,并按 T_aver 的范围(如 0-5、6-10、11-15 等的箱)和 SUM() 的计数列进行分组。例如,如果我要在上面的 LEFT JOIN 表示例中放置 -10 到 0 和 0 到 30 的范围,最终表将如下所示:
Trange |count|
-----------------
-10 - 0 | 6 |
0 - 30 | 3 |
上述转变是我难过的地方,我害怕让我的生活更简单,我只需要创建一张大桌子......
提前致谢
解决方案
你很亲近!只需从您现有的查询开始,然后包装它。
如果您不想被绑定到固定间隔,请为您的垃圾箱使用另一个查找表:
垃圾箱:
mintemp | maxtemp
-10 | 0
0 | 30
我将使用num
而不是count
,因为我从不使用保留字作为列:
SELECT
CONCAT(mintemp, ' - ', maxtemp) AS Trange,
SUM(baseview.num) AS num
FROM bins
INNER JOIN (
SELECT
t1.avg_temperature as T_aver,
t2.new_confirmed as num
FROM 3_day_avg as t1
LEFT JOIN table2 as t2 on t1.date = t2.date
) AS baseview
ON baseview.T_aver>bins.mintemp AND baseview.T_aver<=bins.maxtemp
GROUP BY bins.mintemp;
推荐阅读
- jquery - 使用jquery在动态html的输入标签类内添加空格
- php - 重定向到 PHP 中的上一页但删除所有 URL 变量
- powershell - 如何使用常见的散列算法在 PowerShell 中散列字符串字节数组和 io 流
- c - 在 for 循环中更新结构成员
- java - 如何使用 Firebase 解决 Android Studio 中的空指针异常错误?
- android - 如何在(滑块布局)android中的点击图像上意图或传递数据
- java - 使用 JayDeBeApi 连接到 Hive 时出错 - 找不到类
- google-chrome-devtools - 无法安装 Chromium depot_tools
- spring-webflux - 总是在取消信号上完成 Mono.usingWhen
- xcode - 测试世博项目的可访问性