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
我的查询结果如下。请注意,这是在多个表上。
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