Maison > Questions et réponses > le corps du texte
L'image montre les données que j'ai filtrées. L'instruction est
select time,wish_num,num from wish_num où time >= '15296000' et time <= '1495382399' groupé par time,wish_num,
time. et wish_num est la clé primaire commune
Maintenant, je souhaite fusionner les données de la même date en une seule ligne, par exemple
Date 1 fois 2 fois 5 fois 10 fois 20 fois
1495294000 2 2 4 11 2
1495296000 2 2 4 11 2,
en forme Avec ce format, comment puis-je modifier l'instruction ci-dessus et effectuer une sous-requête ?
怪我咯2017-05-24 11:35:01
Le plus simple est group_concat. Si l'affiche ne l'utilise pas, alors il doit utiliser le cas quand. Puisque le num de l'affiche après group by n'utilise pas de fonction d'agrégation, je comprends que num n'a qu'une seule valeur ? Le SQL est le suivant
select time,
max(case when wish_num=1 then num else 0) '1',
max(case when wish_num=2 then num else 0) '2',
max(case when wish_num=5 then num else 0) '5',
max(case when wish_num=10 then num else 0) '10',
max(case when wish_num=20 then num else 0) '20'
from wish_num where time >= '15296000' and time <= '1495382399' group by time;