首页 > 解决方案 > 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 实现这一点?

标签: 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

推荐阅读