我似乎无法理解为什么,但我正在尝试这个查询:
SELECT called,caller,time,duration
FROM Calls
GROUP BY called,caller,time,duration
但这会返回具有相同called
值的行,这不是我想要的。
基本上我正在尝试构建一个更大的查询,只是一步一步地进行。called
我需要一个查询来为每个返回最新条目caller
我似乎无法理解为什么,但我正在尝试这个查询:
SELECT called,caller,time,duration
FROM Calls
GROUP BY called,caller,time,duration
但这会返回具有相同called
值的行,这不是我想要的。
基本上我正在尝试构建一个更大的查询,只是一步一步地进行。called
我需要一个查询来为每个返回最新条目caller
假设您只需要不同的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
我需要一个查询来为每个呼叫者的每个呼叫返回最新条目
试试这个:
;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;
我认为原因是您不能按多个类别进行分组,请看下面的示例:
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
查看此网站以获取有关此 网站的更多示例