SQLite 相当于 Over(分区)

SQLite equivalent of Over (Partition)

我在 SQL 服务器中有以下查询。该数据库现在正在使用 SQLite 的移动设备上使用。有人可以提供在 SQLite 中可用的等效项吗?

Select DISTINCT TblSites.Customer, TblSites.Digit, Count(TblContractTasks.TaskNumber) OVER (PARTITION BY TblSites.Digit)  As TaskCount 
FROM TblContractTasks INNER Join (TblSites INNER Join TblContractDetails On TblSites.Digit = TblContractDetails.SiteDigit) On TblContractTasks.ContractNumber = TblContractDetails.ContractNumber 
WHERE TblSites.Consultant='xx'  
ORDER BY TblSites.Digit

Table:

Customer   Site   TaskNumber
------------------------
Ca          Sa      100
Ca          Sa      101
Cb          Sb      88
Ca          Sa      103

查询结果:

Customer    Site   TaskCount
-----------------------
Ca           Sa      3
Cb           Sb      1

您只是在寻找 GROUP BY 吗?

SELECT s.Customer, s.Digit, COUNT(*) As TaskCount 
FROM TblSites s INNER JOIN
     TblContractDetails cd
     ON s.Digit = cd.SiteDigit INNER JOIN
     TblContractTasks t
     ON t.ContractNumber = cd.ContractNumber 
WHERE s.Consultant = 'xx'  
GROUP BY s.Customer, s.Digit
ORDER BY s.Digit;

此 returns 您指定数据的结果集。它似乎比您从 SELECT DISTINCT 和您的 COUNT() OVER.

获得的结果集更有用