SQL 服务器 - 计算指定字段的内容在 table 中重复的次数
SQL Server - Count the number of times the contents of a specified field repeat in a table
从 table/视图(使用 'WHERE' 标准)'SELECT' 'DISTINCT' 字段列表的最佳方法是什么?该字段内容在 table / 视图中重复的次数?
换句话说,我有一个看起来有点像这样的初始视图:
我想要一个 SQL 查询来过滤它 (SELECT...WHERE...) 以便我们只考虑 [ORDER COMPLETE] = False 和 [个人] = 空...
...然后创建一个不同的名称列表,其中包含每个名称在前一个 table:
中出现的次数
*此时显示 [订单完成] 和 [个人] 字段是多余的,可以删除以简化。
我可以像上面那样单独执行这些步骤,但很难通过一个查询来完成所有操作...感谢任何帮助!
提前致谢,
-蒂姆
好吧,我被否决了(可能是因为我完全无知!),但以防万一未来的人遇到与我相同的问题并在谷歌搜索(或任何动词)时偶然发现这个问题你在遥远的未来使用 "searching all digitised human knowledge"),这是我最终设法开始工作的一些经过清理的查询代码 - 感谢 Mark Sinkinson 的代码片段帮助我实现了显而易见的...
SELECT DISTINCT TOP (100) PERCENT dbo.tblPerson.Person, COUNT(dbo.tblPerson.Person) AS CountPerson
FROM dbo.tblPerson INNER JOIN
dbo.tblNotifications ON dbo.tblPerson.PersonID = dbo.tblNotifications.AddresseeID
WHERE (dbo.tblNotifications.Complete = 'False') AND (dbo.tblNotifications.Personal IS NULL)
GROUP BY dbo.tblPerson.Person
ORDER BY CountPerson DESC
这应该就是下面的
SELECT dbo.tblPerson.Person,
COUNT(dbo.tblPerson.Person) AS Count
FROM dbo.tblPerson
INNER JOIN dbo.tblNotifications ON dbo.tblPerson.PersonID = dbo.tblNotifications.AddresseeID
WHERE dbo.tblNotifications.Complete = 'False'
AND dbo.tblNotifications.Personal IS NULL
GROUP BY dbo.tblPerson.Person
ORDER BY COUNT(dbo.tblPerson.Person) DESC
您不需要 DISTINCT 或 TOP 100 PERCENT,
Here 是简化的 fiddle
从 table/视图(使用 'WHERE' 标准)'SELECT' 'DISTINCT' 字段列表的最佳方法是什么?该字段内容在 table / 视图中重复的次数?
换句话说,我有一个看起来有点像这样的初始视图:
我想要一个 SQL 查询来过滤它 (SELECT...WHERE...) 以便我们只考虑 [ORDER COMPLETE] = False 和 [个人] = 空...
...然后创建一个不同的名称列表,其中包含每个名称在前一个 table:
中出现的次数*此时显示 [订单完成] 和 [个人] 字段是多余的,可以删除以简化。
我可以像上面那样单独执行这些步骤,但很难通过一个查询来完成所有操作...感谢任何帮助!
提前致谢,
-蒂姆
好吧,我被否决了(可能是因为我完全无知!),但以防万一未来的人遇到与我相同的问题并在谷歌搜索(或任何动词)时偶然发现这个问题你在遥远的未来使用 "searching all digitised human knowledge"),这是我最终设法开始工作的一些经过清理的查询代码 - 感谢 Mark Sinkinson 的代码片段帮助我实现了显而易见的...
SELECT DISTINCT TOP (100) PERCENT dbo.tblPerson.Person, COUNT(dbo.tblPerson.Person) AS CountPerson
FROM dbo.tblPerson INNER JOIN
dbo.tblNotifications ON dbo.tblPerson.PersonID = dbo.tblNotifications.AddresseeID
WHERE (dbo.tblNotifications.Complete = 'False') AND (dbo.tblNotifications.Personal IS NULL)
GROUP BY dbo.tblPerson.Person
ORDER BY CountPerson DESC
这应该就是下面的
SELECT dbo.tblPerson.Person,
COUNT(dbo.tblPerson.Person) AS Count
FROM dbo.tblPerson
INNER JOIN dbo.tblNotifications ON dbo.tblPerson.PersonID = dbo.tblNotifications.AddresseeID
WHERE dbo.tblNotifications.Complete = 'False'
AND dbo.tblNotifications.Personal IS NULL
GROUP BY dbo.tblPerson.Person
ORDER BY COUNT(dbo.tblPerson.Person) DESC
您不需要 DISTINCT 或 TOP 100 PERCENT,
Here 是简化的 fiddle