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