所以我有一张桌子,它在我的行中密集排列。表格如下:
COL1 | COL2 | COL3 | DENSE_RANK |
a | b | c | 1 |
a | s | r | 1 |
a | w | f | 1 |
b | b | c | 2 |
c | f | r | 3 |
c | q | d | 3 |
因此,现在我想选择仅排名仅代表一次的任何行,因此2单独存在,而不是1或3。我想选择发生这种情况的所有行,但是我该怎么做呢?
一些想法:
-COUNT DISTINCT (RANK())
-COUNT RANK()
但是这些都不起作用,有什么主意吗?谢谢,麻烦您了!
快乐黑客
实际代码:
SELECT events.event_type AS "event",
DENSE_RANK() OVER (ORDER BY bw_user_event.pad_id) as rank
FROM user_event
WHERE (software_events.software_id = '8' OR software_events.software_id = '14')
AND (software_events.event_type = 'install')
WITH Dense_ranked_table as (
-- Your select query that generates the table with dense ranks
)
SELECT DENSE_RANK
FROM Dense_ranked_table
GROUP BY DENSE_RANK
HAVING COUNT(DENSE_RANK) = 1;
我没有SQL Server对此进行测试。所以,请让我知道这是否有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句