J'ai une table maintenant, je voudrais obtenir tous les 42 ans dans différentes colonnes par ville p> donc donc je aurait besoin de quelque chose comme p> meilleur de Berlin
Joerg P> P>
3 Réponses :
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;
Pensez-vous qu'il n'y a pas de 42 vieux à Hambourg ou à une autre ville allemande? : o)
en utilisant Pivot par exemple, je l'ai fait avec SQL Server. J'espère que cela peut vous aider.
Merci pour votre aide! Basé sur la réponse de Gordon Linhoff, j'ai eu cette solution: p>
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 ; p>
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.
BigQuery ne prend pas en charge (le plus probable
mais code>) 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 code>,
transpose code>, etc.