关闭

SQL小需求

58人阅读 评论(0) 收藏 举报
分类:

今天在群里讨论一个需求:(无聊 就写了一下大笑)

需求:请教一条sql,我id不唯一,我想取name的值有0也有非0的id,比如下面我要取的是1和4
id name
1 0
1 1
1 2
2 0
3 0
4 0
4 2
5 1
5 2
6 0
6 0


解答:

-- 1.写法1:子查询
SELECT ID,NAME
  FROM TEST
 WHERE ID IN (SELECT ID FROM TEST GROUP BY ID HAVING COUNT(DISTINCT NAME) > 1)
   AND NAME = '0';




-- 2.写法2:分析函数
SELECT *
  FROM (SELECT ID, NAME, COUNT(DISTINCT NAME) OVER(PARTITION BY ID) AS RN FROM TEST) T
 WHERE RN > 1
   AND NAME = '0'



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:184次
    • 积分:30
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档