Group by PostgreSQL

Group by PostgreSQL - SQL/NoSQL - Programmation

Marsh Posté le 02-05-2019 à 13:41:08    

Bonjour  :hello:  
 
J'ai un problème de requête PostgreSQL que je ne parviens plus à refaire.
 
En gros j'ai une table comme ça :
 
pk col1 col2 col3
1 AA ad 1
2 AA ac 1
3 AA ac 1
4 BB bc 2
5 BB bd 2
6 CC cd 3
7 CC ce 3
8 DD de 4
9 DD de 4
10 DD dg 4
 
Avec un group by j'étais arrivé à ce résultat, mais j'ai oublié comment :
 
 
count_col1 col1      col2                     col3
3                 AA        ad, ac               1
2                 BB        bc, bd               2
2                 CC        cd, ce               3
3                 DD       de, dg               4
 
 
 
Merci  :jap:


---------------
Roll out !
Reply

Marsh Posté le 02-05-2019 à 13:41:08   

Reply

Marsh Posté le 02-05-2019 à 14:15:44    

avec array_agg


---------------

Reply

Marsh Posté le 02-05-2019 à 14:31:22    

Code :
  1. SELECT col1, col3, COUNT(col1) AS count_col1, array_agg(col2) AS col2 FROM matable
  2. GROUP BY col1, col3


Un truc comme ca.

Reply

Marsh Posté le 02-05-2019 à 15:29:15    

Merci,
 
J'ai essayer mais le problème est que pour l'exemple cela donne pour DD :
 
 
count_col1 col1      col2                     col3  
1                 DD       dg                     3  
2                 DD       de, de               3  
 


---------------
Roll out !
Reply

Marsh Posté le 02-05-2019 à 15:45:47    

si tu regardes la doc de array_agg, tu verras qu'il y a la possibilité d'avoir les valeurs différentes, et même de les trier


---------------

Reply

Marsh Posté le 02-05-2019 à 16:43:28    

intersigne a écrit :

Merci,
 
J'ai essayer mais le problème est que pour l'exemple cela donne pour DD :
 
 
count_col1 col1      col2                     col3  
1                 DD       dg                     3  
2                 DD       de, de               3  
 


Testé:

Code :
  1. SELECT COUNT(col1) AS count_col1, col1, array_agg(DISTINCT col2) AS col2, col3 FROM test_hfr
  2. GROUP BY col1, col3


 
Manquait le distinct... Franchement tu pouvais le trouver...

Reply

Marsh Posté le 02-05-2019 à 17:11:08    

Devil'sTiger a écrit :


Manquait le distinct... Franchement tu pouvais le trouver...


 
Effectivement tu as raison.
 
 
Merci à vous, cela fonctionne comme cela.


---------------
Roll out !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed