Maison  >  Questions et réponses  >  le corps du texte

Sous-requête - comment MySQL fusionne plusieurs lignes de données en plusieurs colonnes d'une même ligne


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 ?

習慣沉默習慣沉默2704 Il y a quelques jours813

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯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;

    répondre
    0
  • Annulerrépondre