GROUP BY 带来重复,它不是分组

GROUP BY brings duplicates and it`s not grouping

我正在尝试 GROUP BY 按日期和 Off/OnStreet 排成一行的每个权限 ID。我不明白 SQL 查询出了什么问题。它给我带来了重复或重复的 AuthorityId,而不是根据日期和 On/Offstreet.

按权限 ID 对所有内容进行分组

这是我的 SQL 查询

WITH ParkeonCTE
AS
(
SELECT 
    OccDate = CONVERT(DATE, LocalStartTime),
    TotalOccSessions = COUNT(SessionId),
    AuthorityId,
    (CASE
        WHEN OC.OspId IS NULL THEN 'OffStreet' ELSE 'OnStreet'
        END
    ) AS ParkingContextType
FROM Analytics.OccupancySessions AS OC
WHERE AuthorityId IS NOT NULL
GROUP BY  CONVERT(DATE,LocalStartTime), AuthorityId, OspId
)

  SELECT CONVERT(DATE,OC.OccDate),
   OC.TotalOccSessions,
   OC.ParkingContextType,
    OC.AuthorityId
  FROM ParkeonCTE AS OC
  GROUP BY CONVERT(DATE, OC.OccDate), OC.AuthorityId, OC.TotalOccSessions, OC.ParkingContextType
  ORDER BY CONVERT(DATE,OC.OccDate) DESC

外部查询在 1 上分组过多。

...
SELECT 
 CONVERT(DATE,OC.OccDate) AS OccDate,
 SUM(OC.TotalOccSessions) AS TotalOccSessions,
 OC.ParkingContextType,
 OC.AuthorityId
FROM ParkeonCTE AS OC
GROUP BY CONVERT(DATE, OC.OccDate), OC.AuthorityId, OC.ParkingContextType
ORDER BY CONVERT(DATE, OC.OccDate) DESC

使用聚合函数SUM()

WITH ParkeonCTE
AS
(
SELECT 
    OccDate = CONVERT(DATE, LocalStartTime),
    TotalOccSessions = COUNT(SessionId),
    AuthorityId,
    (CASE
        WHEN OC.OspId IS NULL THEN 'OffStreet' ELSE 'OnStreet'
        END
    ) AS ParkingContextType
FROM Analytics.OccupancySessions AS OC
WHERE AuthorityId IS NOT NULL
GROUP BY  CONVERT(DATE,LocalStartTime), AuthorityId, OspId
)

   SELECT 
      CONVERT(DATE,OC.OccDate),
      SUM(OC.TotalOccSessions),
      OC.ParkingContextType,
      OC.AuthorityId
  FROM ParkeonCTE AS OC
  GROUP BY CONVERT(DATE, OC.OccDate), OC.AuthorityId, OC.ParkingContextType
  ORDER BY CONVERT(DATE,OC.OccDate) DESC