create table #middle
(
A INT,
B INT,
C INT
)
INSERT INTO #middle (A,B,C) VALUES (7,6,2),(1,0,8),(9,12,16),(7, 16, 2),(1,12,8), (9,12,16),(9,12,16),(7, 16, 2),(1,12,8), (9,12,16)
;WITH MIDS
AS (SELECT *,
Row_number()
OVER (
ORDER BY a, b, c DESC)AS rn
FROM #middle)
SELECT *
FROM MIDS
WHERE rn <= (SELECT CASE (Count(*)%2)
WHEN 0 THEN (Count(*)/2) + 1
ELSE (Count(*)/2)
END
FROM MIDS) except (SELECT *
FROM MIDS
WHERE rn < (SELECT (Count(*)/2)
FROM MIDS))
Запрос, который я пробовал, работает> 4 записи, но не для '3'. Теперь мой вопрос заключается в том, как мне изменить свой запрос так, что для 3-х записей я должен получить вторую запись, которая является самой средней среди них, попробуйте вставить только 3 записи из предыдущих записей и справки. Заранее спасибо.Как получить среднее большинство записей из группы данных в sql
Это именно то, что я искал. Работает и для <4 записей, которые удовлетворяют моему вопросу. Большой !! –
@Shinchan_Shiro, если это ответит на ваш вопрос, вы должны его принять! –