sql - SQL,如何仅检索与另一列中具有相同值的多个条目相关联的列?
问题描述
假设遵循一个名为“SalesRecords”的表
Name City Sales Item
John London 10 X
John London 5 Y
John New York 7 Z
Charles London 5 A
George New York 10 A
Geroge New York 5 X
这里John在伦敦和纽约是同一个人,我要检索一个在多个城市工作的人,以及他们在哪些城市工作和对应的编号。他们在那个城市的销售额。如下——
Name City Sales
John London 15
John New York 7
如何使用 SQL 实现这一点?
解决方案
您需要在名称和城市上使用 GROUP BY:
SELECT a.Name, a.City, SUM(a.Sales) AS Sales
FROM yourTable a
INNER JOIN (
SELECT NAME, COUNT(*)
FROM
(
SELECT Name, City
FROM yourTable
GROUP BY Name, City
)
HAVING COUNT(*) > 1
) b ON A.name = b.name
GROUP BY a.Name, a.City
推荐阅读
- android - 是否可以将 FlutterSimpleStickerView 与存储到文件变量的图像一起使用?
- javascript - TypeError:无法读取属性“标题”和未定义 React Hooks 道具的映射问题
- c++ - std::condition_variable::wait_for() 比请求晚唤醒线程
- android - 我收到“循环依赖”Android Dagger Hilt 错误
- elasticsearch - Elasticsearch:函数分数 + 布尔查询,仅匹配具有某些可能值集中的术语的文档
- triggers - 气流限制每日触发
- sql - Oracle 在 DML 中调用函数
- android - Android - Facebook 登录 - 获取身份验证令牌
- html - 如何直观地比较两个 HTML 文档?
- python - 使用scrapy在csv中存储数据的问题