-1
votes

SQL multiple en tant que colonnes d'où

J'ai une table xxx

maintenant, je voudrais obtenir tous les 42 ans dans différentes colonnes par ville xxx

donc donc je aurait besoin de quelque chose comme xxx

meilleur de Berlin Joerg


1 commentaires

BigQuery ne prend pas en charge (le plus probable mais ) pivot - mais il y a toujours "Solution de contournement" - Veuillez clarifier votre cas d'utilisation spécifique afin que nous puissions répondre à une réponse appropriée. Aussi - il y a déjà un certain nombre de questions avec des réponses sur ce sujet très sujet - avez-vous essayé de rechercher? Les mots clés seraient pivot , transpose , etc.


3 Réponses :


0
votes

Je pense que vous voulez que vous souhaitez agrégation:

select max(case when city = 'berlin' then name end) as berlin,
       max(case when city = 'munich' then name end) as munich
from (select t.*, row_number() over (partition by city order by name) as seqnum
      from t
      where city in ('berlin', 'munich') and age = 42
     ) t
group by seqnum
order by seqnum;


1 commentaires

Pensez-vous qu'il n'y a pas de 42 vieux à Hambourg ou à une autre ville allemande? : o)



0
votes

en utilisant Pivot par exemple, je l'ai fait avec SQL Server. J'espère que cela peut vous aider. xxx


0 commentaires

0
votes

Merci pour votre aide! Basé sur la réponse de Gordon Linhoff, j'ai eu cette solution:

Sélectionnez max (cas lorsque la ville = 'Berlin' puis Nom Fin) Comme Berlin, max (cas quand ville = 'munich' puis nom fin) comme Munich De la table Où âge = 42 ;


2 commentaires

Cela ne renvoie qu'une seule rangée, de sorte qu'il ne renvoie pas le jeu de résultats souhaité.


Oh, merci, alors j'ai posé la mauvaise question ou écrit réellement un mauvais résultat. À la fin, c'est ce que je veux.