按名称从表组中仅选择一半记录

时间:2017-11-25 10:48:47

标签: sql sql-server

我有一张如下表格

名称 一个 一个 乙 乙 C C C C C C d d d d

我需要像下面那样放

名称 一个 乙 C C C d d

1 个答案:

答案 0 :(得分:1)

您可以使用row_numbercount窗口函数分别获取运行计数和每个值的总计数,然后进行比较:

SELECT value
FROM   (SELECT value, 
               COUNT(*) OVER (PARTITION BY vale) AS cnt,
               ROW_NUMBER() OVER (PARTITION BY value) AS rn
        FROM   mytable) t
WHERE  rn <= (cnt / 2)