我想在sql中使用查询结果,但它有一些重复值,我想要它的不同值
我的问题是我想在sql中使用查询结果,但它有一些重复值,我想要它的不同值,sql,sql-server,Sql,Sql Server,我的问题是 SELECT [date], [Id], COUNT(*) AS cc FROM BestReviews WHERE customer = 'ATVPDKIKX0DER' GROUP BY [id], [date] HAVING COUNT(Id) > 50 ORDER BY cc DESC 它返回如下结果: 1999-3-22 534215 64 1999-3-22 220009 64 1998-11-18
SELECT
[date], [Id], COUNT(*) AS cc
FROM
BestReviews
WHERE
customer = 'ATVPDKIKX0DER'
GROUP BY
[id], [date]
HAVING
COUNT(Id) > 50
ORDER BY
cc DESC
它返回如下结果:
1999-3-22 534215 64
1999-3-22 220009 64
1998-11-18 139545 58
1998-11-18 314112 58
1998-11-18 427338 58
1999-11-16 75564 55
1999-11-16 279232 55
我只想知道这个查询的3个不同日期。e、 十、1999-3-22及1998-11-18及1999-11-16。有序的后代
有人能帮我吗?不清楚为什么不同的ID会得到相同的计数 但是,您的问题的答案似乎是从
选择和分组依据中删除id
:
SELECT [date], count(*) as cc
FROM BestReviews
WHERE customer = 'ATVPDKIKX0DER'
GROPU BY [date]
HAVING count(*) > 50
ORDER BY cc DESC;
不清楚为什么不同的ID会得到相同的计数
但是,您的问题的答案似乎是从选择和分组依据中删除id
:
SELECT [date], count(*) as cc
FROM BestReviews
WHERE customer = 'ATVPDKIKX0DER'
GROPU BY [date]
HAVING count(*) > 50
ORDER BY cc DESC;
同一日期的不同id
s具有asme计数是可疑的。同一日期的不同id
s具有asme计数是可疑的。但如果我删除id,它将无法正常工作。因为Id的计数在组中很重要,而不是日期的计数。但如果我删除Id,它将无法正常工作。因为身份证的数量在小组中很重要,而不是日期的数量。非常感谢。它能给我想要的东西。欢迎!:)我只是想重申@Gordon Linoff的建议是正确的,因为它的id不同,所以您有多个结果。如果您从group by中删除id并选择,它将为您提供相同的期望结果。但是,如果要保留id。。只需将id从GROUPBY中删除,并将max(id)从select中删除,尽管我以子查询的形式回答了上面的问题。。原因是保留您的查询结果。非常感谢。它能给我想要的东西。欢迎!:)我只是想重申@Gordon Linoff的建议是正确的,因为它的id不同,所以您有多个结果。如果您从group by中删除id并选择,它将为您提供相同的期望结果。但是,如果要保留id。。只需将id从GROUPBY中删除,并将max(id)从select中删除,尽管我以子查询的形式回答了上面的问题。。背后的原因是保留查询结果。