【问题标题】:SQL query to get values which are not repeated by a columnSQL查询以获取列不重复的值
【发布时间】:2017-09-19 19:50:20
【问题描述】:

我有一张这样的桌子

User id   Status
 XXX        Y
 XXX        N
 YYY        N
 ZZZ        Y
 ZZZ        Y

现在我需要选择在表格中只出现一次的用户以及状态值。所需的输出:

User id   Status
 YYY        N

我试过了

SELECT userid,status from table GROUP BY userid,status having count(userid)=1

但它给出的输出为

User id   Status
 XXX        Y
 XXX        N
 YYY        N

【问题讨论】:

  • 我认为因为您还按状态分组,所以拥有部分正在分别计算每个状态计数。所以基本上我说在你的group by 中没有status 再次尝试你的查询

标签: mysql group-by count


【解决方案1】:

试试这个:

SELECT userid, status
FROM table
GROUP BY userid, status
HAVING (COUNT(userid) = 1)

【讨论】:

  • 这与我发布的查询相同吗?
  • () 括号没有正确使用,你试过了吗?
  • 抱歉耽搁了,我没看清楚问题在这里你去.. SELECT userid, status FROM table where userid = (select userid from table group by userid have (count(userid) = 1)
【解决方案2】:

您可以使用子查询:

SELECT userid,status from table where userid IN
(SELECT userid from table GROUP BY userid having count(userid)=1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2019-07-09
    • 2012-09-07
    • 2018-12-30
    • 2011-11-11
    • 1970-01-01
    • 2014-01-21
    相关资源
    最近更新 更多