【问题标题】:SQL server + group by having with conditionSQL server + group by 有条件
【发布时间】:2016-07-02 23:42:10
【问题描述】:

我有客户表(customerid 主键)用户表(CustomerId 是外键,UserID 主键,AuthStatus 列真或假)。用户表可以有 N 个用户具有相同的客户 ID。 我试图应用一个逻辑:在 customerid 上内部连接两个表,但我需要获取所有客户 ID,这些客户 ID 至少有一个用户的 AuthStatus 为 true。

是否可以使用 Group by Customerid,userid 来执行此操作,但如何应用此逻辑,即至少有一个用户的 AuthStaus 为 true。

【问题讨论】:

    标签: mysql conditional-statements multiple-columns having


    【解决方案1】:

    试试这个:

    SELECT c.customerid
    FROM Customer AS c
    INNER JOIN User AS u ON c.customerid = u.customerid 
    GROUP BY c.customerid
    HAVING SUM(u.AuthStatus) > 0
    

    【讨论】:

    • 谢谢。抱歉,实际条件是检查用户的 authid = 3(用户表中的列),而不是 AuthStatus 为真。我得到它来检查使用情况的条件,例如 sum(CASE WHEN u.authid = 5 THEN 1 ELSE 0 END ) > 0
    • 有没有办法检查是否至少有一个用户id符合条件即u.authid = 5,以上查询将所有符合条件的用户id分组在customer id下。
    猜你喜欢
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多