mysql - 使用 MySQL 在给定表中查找具有起始位置和目的地位置的城市的出现
问题描述
我正在尝试解决这个问题,但我无法取得很大进展。我被困在如何列出仅属于原始位置而不是目标位置的元素,反之亦然。
表名称:出货量
Shipment_ID | 挑个日子 | 交货日期 | 原产地 | 目的地位置 |
---|---|---|---|---|
101 | 2020 年 1 月 1 日 | 2020 年 2 月 10 日 | 底特律 | 西雅图 |
102 | 2020 年 1 月 2 日 | 2020 年 1 月 10 日 | 西雅图 | 洛杉矶 |
103 | 2020 年 1 月 1 日 | 2020 年 2 月 10 日 | 洛杉矶 | 纽约市 |
104 | 2020 年 2 月 10 日 | 2020 年 3 月 14 日 | 纽约市 | 纽约市 |
105 | 2020 年 1 月 3 日 | 2020 年 3 月 11 日 | 洛杉矶 | 西雅图 |
106 | 2020 年 1 月 2 日 | 2020 年 2 月 10 日 | 达拉斯 | 波特兰 |
答案:最终模式
地点 | 总皮卡 | 总交付量 |
---|---|---|
底特律 | 1 | 0 |
西雅图 | 1 | 2 |
洛杉矶 | 2 | 1 |
纽约市 | 1 | 2 |
达拉斯 | 1 | 0 |
波特兰 | 0 | 1 |
解决方案
我倾向于这样做:
select location,
sum(is_origin) as pickups,
sum(is_destination) as deliveries
from ((select origin as location, 1 as is_origin, 0 as is_destination
from shipments
) union all
(select destination as location, 0 as is_origin, 1 as is_destination
from shipments
)
) od
group by location;
不需要额外JOIN
的。
推荐阅读
- angular - 如何为角材质树添加支线?
- javascript - 我如何在 Mongodb 中获得这个特定值?
- android - networkBoundResource 仅取决于 Room
- c++ - 如何使用 C++ 清除 Windows 中的控制台?
- css - React Framer Motion 在颜色过渡之间
- c++ - 无法在 CMake 中链接静态库
- html - 显示切片之间的间隙和空白的 Outlook html 签名
- c++ - 头文件中定义继承类构造函数语法错误的类构造函数
- node.js - res.send(200) 是否与 res.status(200).send('OK') 相同,是否与 res.sendStatus(200) 相同;
- javascript - 在提交按钮后刷新dom后如何获取元素内部文本?