我有以下查询 - 这正如我所料。
SELECT
profile_name,
COUNT(DISTINCT serial_number) AS num_profiles,
payload_name, timestamp
FROM profile
WHERE 1
GROUP BY profile_name, payload_name;
但是,我需要按profile_name
,payload_name
分组,但只想按serial_numbers
计算不同的profile_name
。所以 - 我相信上面的命令 - 它依赖于两个GROUP BY参数。我希望它只依赖于profile_name来计算。但是,我仍然需要通过profile_name,payload_name。
以下命令计算我想要的方式 - 但不会提供我需要的所有payload_name数据。
SELECT
profile_name,
COUNT(DISTINCT serial_number) AS num_profiles,
payload_name,
timestamp
FROM profile
WHERE 1
GROUP BY profile_name;
基本上我需要第一个查询中的所有信息以及第二个查询中的计数信息。
我可以在一个SQL查询中执行此操作,还是需要执行两个操作。
答案 0 :(得分:3)
计数的相关子查询很容易调整:
SELECT profile_name,
(select COUNT(DISTINCT serial_number)
from profile p2
where p1.profile_name = p2.profile_name) AS num_profiles,
payload_name,
timestamp
FROM profile p1
也许你还想做SELECT DISTINCT
?