Group by 带子查询的DISTINCT或GROUP BY

Group by 带子查询的DISTINCT或GROUP BY,group-by,subquery,distinct,Group By,Subquery,Distinct,你好,我有这个问题: SELECT DISTINCT a.id, a.runcd, (SELECT SUM(b.CALVAL) FROM GRS b WHERE b.PCode=11000 AND a.id = b.id AND a.runcd=b.runcd) AS qval FROM GRS a WHERE a.crt = k04 这是一样的吗 SELECT a.id, a.runcd, (SELECT SUM(b.CALVAL) FROM GRS b WHERE b.PCode

你好,我有这个问题:

SELECT DISTINCT a.id, a.runcd, 
(SELECT SUM(b.CALVAL) FROM GRS b 
WHERE b.PCode=11000 
AND a.id = b.id 
AND a.runcd=b.runcd) AS qval
FROM GRS a
WHERE a.crt = k04
这是一样的吗

SELECT a.id, a.runcd,
(SELECT SUM(b.CALVAL) FROM GRS b 
WHERE b.PCode=11000 
AND a.id = b.id 
AND a.runcd=b.runcd) AS qval
FROM GRS a
WHERE a.crt = k04
GROUP BY id,runcd

到目前为止,这返回了相同的结果,但我不知道这是否是正确的选择。谢谢大家!

对于这个特定的查询,无论数据库供应商如何,它们的行为都将完全相同(至少我想不出使用mysql、sql server、postgres或oracle进行此查询有任何问题)。

对于这个特定的查询,无论数据库供应商如何,它们的行为都将完全相同(至少我想不出使用mysql、sql server、postgres或oracle进行此查询有任何问题)

groupby
允许您使用聚合函数,如
AVG
MAX
MIN
SUM
COUNT
等,而
DISTINCT
只是删除重复项


在您的情况下,即使您使用子查询,它也会给您相同的结果,因为您只检索
SUM(b.CALVAL)

groupby
允许您使用聚合函数,如
AVG
MAX
MIN
SUM
COUNT
等,而
DISTINCT
只是删除重复项



在您的情况下,即使您使用子查询,它也会给您相同的结果,因为您只检索
SUM(b.CALVAL)

哪种SQL?例如MySQL、SQL Server等。哪种SQL?例如MySQL、SQL Server等。