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