【问题标题】:Show the user details, total no of users joined after and before him显示用户详细信息,在他之后和之前加入的用户总数
【发布时间】:2020-06-03 13:23:45
【问题描述】:

从表中,我如何定义在单个 ID 之后和之前加入的用户总数。

like, user id = 5。5前,4个用户注册,5后,5个用户注册。

到目前为止我的尝试,

SELECT *
FROM users
WHERE id > (
                       SELECT id 
                       FROM users
                        WHERE id = 3)
                        ||
                        id < ( SELECT id
                              FROM users WHERE id = 3)

【问题讨论】:

    标签: mysql sql group-by count subquery


    【解决方案1】:

    如何定义在单个 id 之后和之前加入的用户总数?

    你似乎想要条件聚合:

    select 
        sum(id > 3) joined_after_3,
        sum(id < 3) joined_before_3
    from users
    

    这将为您提供一个由一行和两列组成的结果集,其中包含如果 id 小于(或大于)3 的表的行数。

    【讨论】:

      【解决方案2】:

      请使用以下查询,

      select 
          case when id < 3 then count(id),
          case when id >= 3 then count(id)
      from users;
      

      【讨论】:

        猜你喜欢
        • 2019-09-23
        • 1970-01-01
        • 2020-05-01
        • 1970-01-01
        • 2013-08-19
        • 2014-11-11
        • 2014-11-08
        • 1970-01-01
        相关资源
        最近更新 更多