Sous-requête - comment MySQL fusionne plusieurs lignes de données en plusieurs colonnes d'une même ligne
習慣沉默
習慣沉默 2017-05-24 11:33:01
0
1
858


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 ?

習慣沉默
習慣沉默

répondre à tous(1)
刘奇

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;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal