简体   繁体   中英

Group by query sql

I would like to count the number of alerts and the number of alerts processed by user and type type = C and MI started with this query it gives me the number of major and critical alerts right but I'm stuck for numbers of alerts processed

SELECT 
  TYPE,
  user_name,
  COUNT(type_alertes) AS nb, 
  id_user,
  SUM(CASE WHEN TYPE ='C' THEN 1 ELSE 0 END) AS critique,
  SUM(CASE WHEN TYPE ='M' THEN 1 ELSE 0 END) AS majeur 
FROM stat_alert  
 LEFT OUTER JOIN user_qdf ON user_qdf.`id` = id_user 
WHERE 
  user_qdf.`id`=id_user 
  AND TYPE IN ('M', 'C')
GROUP BY id_user 

who can help me

If you want number of all alerts and from that number of C and number of M then

SELECT 
  user_name,
  COUNT(type_alertes) AS nb, 
  id_user,
  SUM(CASE WHEN TYPE ='C' THEN 1 ELSE 0 END) AS critique,
  SUM(CASE WHEN TYPE ='M' THEN 1 ELSE 0 END) AS majeur 
FROM stat_alert  
 JOIN user_qdf ON user_qdf.`id` = id_user 
GROUP BY id_user, user_name 

should do that. I assume that user_name is from user_qdf table and other are from stat_alert and id_user is not null.

EDIT: For sum of alertes

SELECT 
  user_name,
  COUNT(type_alertes) AS nb, 
  id_user,
  SUM(CASE WHEN TYPE ='C' THEN 1 ELSE 0 END) AS critique,
  SUM(CASE WHEN TYPE ='M' THEN 1 ELSE 0 END) AS majeur 
  SUM(CASE WHEN TYPE ='M' OR TYPE = 'C' THEN 1 ELSE 0 END) AS both_c_and_m
FROM stat_alert  
 JOIN user_qdf ON user_qdf.`id` = id_user 
GROUP BY id_user, user_name

EDIT2:

SELECT 
  user_name,
  COUNT(type_alertes) AS nb, 
  SUM(CASE WHEN TYPE ='C' THEN type_alertes ELSE 0 END) AS critique_alerts,
  SUM(CASE WHEN TYPE ='M' THEN type_alertes ELSE 0 END) AS majeur_alertes
  id_user,
  SUM(CASE WHEN TYPE ='C' THEN 1 ELSE 0 END) AS critique,
  SUM(CASE WHEN TYPE ='M' THEN 1 ELSE 0 END) AS majeur 
FROM stat_alert  
 JOIN user_qdf ON user_qdf.`id` = id_user 
WHERE TYPE in ('C','M')
GROUP BY id_user, user_name

is that what you want?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM