【问题标题】:Count records of a column after group by in SQL在SQL中按分组后计算列的记录
【发布时间】:2015-01-20 06:37:11
【问题描述】:

我正在运行这个查询:

SELECT "uname","sip",count(1) as cnt FROM "random_data_date" GROUP BY "uname","sip";

要得到这样的东西:

+------------+-----------------+--------------+
|   uname    |    sip          | cnt          |
+------------+-----------------+--------------+
| root       | 172.17.165.60   | 1            |
| root       | 172.17.53.124   | 2            |
| root       | 172.28.184.39   | 3            |
| root       | 192.168.207.7   | 1            |
| root       | 192.168.245.110 | 1            |
| user1      | 172.17.165.60   | 1            |
| user1      | 172.24.85.227   | 10           |
| user1      | 172.25.14.184   | 2            |
| user2      | 172.16.194.151  | 1            |
| user2      | 172.16.248.88   | 1            |
| user2      | 172.16.9.55     | 1            |
| user2      | 172.17.165.60   | 2            |
| user2      | 172.17.234.122  | 1            |
| user2      | 172.17.53.124   | 1            |
+------------+-----------------+--------------+

有没有办法让它把每个用户名的sips的个数加起来,把它们的cnts加起来,所以输出是这样的:

+------------+-----------------+--------------+
|   uname    |    sipcnt       | cnt          |
+------------+-----------------+--------------+
| root       | 5               | 8            |
| user1      | 3               | 13           |
| user2      | 6               | 7            |
+------------+-----------------+--------------+

我正在使用Apache Phoenix 来查询 Apache HBase。

我发现this question 类似,但我不知道如何将答案应用于我的情况。

【问题讨论】:

    标签: sql select phoenix


    【解决方案1】:
    SELECT "uname",
           Count(distinct "sip") as "sipcnt",
           count(1) as cnt 
    FROM "random_data_date" 
    GROUP BY "uname";
    

    【讨论】:

      【解决方案2】:

      应该是这样的:

      SELECT 
          "uname",
          count(distinct "sip"),
          count("sip") as cnt 
      FROM 
          "random_data_date" 
      GROUP BY 
          "uname"
      ;
      

      【讨论】:

        【解决方案3】:

        运行此查询将为您提供所需的结果:

        SELECT DISTINCT(uname), COUNT(sip), SUM(cnt) FROM random_data_date GROUP BY uname

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-11-06
          • 2022-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多