我似乎无法理解为什么,但我正在尝试这个查询:
SELECT called,caller,time,duration
FROM Calls
GROUP BY called,caller,time,duration
但是返回具有相同called
值的行,这不是我想要的。
基本上我正在尝试构建一个更大的查询,只是一步一步地进行。
我需要一个查询来返回每called
个caller
答案 0 :(得分:1)
假设您只想要不同的called
值,而是所有列。如果有多个called
我只采用最后一个(按time
排序):
WITH CTE AS
(
SELECT called,caller,time,duration,
RN = ROW_NUMBER() OVER (PARTITION BY called ORDER BY time DESC)
FROM Calls
)
SELECT called,caller,time,duration
FROM CTE WHERE RN = 1
答案 1 :(得分:0)
我需要一个查询来返回每个被调用者的最新条目
请改为尝试:
;WITH CTE
AS
(
SELECT
called,
caller,
time,
duration,
ROW_NUMBER() OVER(PARTITION BY caller
ORDER BY called DESC) rownum
FROM Calls
)
SELECT
called,
caller,
time,
duration
FROM CTE
WHERE rownum = 1;
答案 2 :(得分:0)
我认为原因是你不能按多个类别进行分组,请参考以下示例:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
有关此问题的更多示例,请查看此网站 WEBSITE