Select 多个 table 中一列的唯一值

Select unique value on one column within multiple table

我的查询结果如下。请注意,这是在多个表上。

EMAIL(A)  PROD_ID(B)   PROD_NAME(B)   CODE(C)
a@a.com   123456       SUNLIGHT A     002
a@a.com   123456       SUNLIGHT B     002
a@a.com   123456       SUNLIGHT C     002
a@a.com   768901       MOON           003
a@a.com   881231       STAR           004   

我的查询如下。

SELECT A.EMAIL, B.PROD_ID, B.PROD_NAME, C.CODE
FROM A
INNER JOIN B ON B.EMAIL = A.EMAIL
INNER JOIN C ON C.CODE = B.CODE
GROUP BY A.EMAIL, B.PROD_ID, B.PROD_NAME, C.CODE
ORDER BY A.EMAIL, C.CODE

我只需要为每个 PROD_ID 获取 1 行数据。我尝试使用 MAX(B.PROD_ID) AS "PROD_ID",但我仍然得到 PROD_ID 的多行。任何人都可以对此提出建议吗?或者帮帮我?非常感谢!

期望的结果是:

EMAIL(A)  PROD_ID(B)   PROD_NAME(B)   CODE(C)
a@a.com   123456       SUNLIGHT A     002
a@a.com   768901       MOON           003
a@a.com   881231       STAR           004  

感谢任何帮助。谢谢!

你需要 collapse/aggregate PROD_NAME 以某种方式。我使用 MIN 因为它符合您想要的结果。您可以使用适合您的任何聚合:

SELECT A.EMAIL, B.PROD_ID, MIN(B.PROD_NAME), C.CODE
FROM A
INNER JOIN B ON B.EMAIL = A.EMAIL
INNER JOIN C ON C.CODE = B.CODE
GROUP BY A.EMAIL, B.PROD_ID, C.CODE
ORDER BY A.EMAIL, C.CODE