2014-11-22 4 views
0

Я бегу этот вопрос:граф записей столбца после группы по SQL в

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   | 
+------------+-----------------+--------------+ 

Есть ли способ, чтобы я мог это сделать сложить число sip с для каждого пользователя, и складывают cnt сек из них, поэтому вывод таков:

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

Я использую Apache Phoenix для запроса Apache HBase.

Я нашел this question, что похоже, но я не знаю, как применить ответы на мою ситуацию.

ответ

1

бы быть что-то вроде этого:

SELECT 
    "uname", 
    count(distinct "sip"), 
    count("sip") as cnt 
FROM 
    "random_data_date" 
GROUP BY 
    "uname" 
; 
4
SELECT "uname", 
     Count(distinct "sip") as "sipcnt", 
     count(1) as cnt 
FROM "random_data_date" 
GROUP BY "uname"; 
0

Выполнение этого запроса даст вам результаты, которые вы хотите:

SELECT DISTINCT (uname), COUNT (SIP), SUM (CNT) FROM random_data_date GROUP BY uname

Смежные вопросы