SQL rank / dense_rank以及如何查询/计算结果

数学双关语

所以我有一张桌子,它在我的行中密集排列。表格如下:

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')
SO用户
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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章