Nedenfor er til BigQuery!
Bemærk venligst:dine forventninger til outputkolonnenavne er ikke korrekte!
Kolonnenavn kan ikke starte med ciffer - så i nedenstående eksempel - vil jeg bruge id_1, id_2 og id_3 i stedet for 1, 2 og 3
SELECT
SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,
SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,
SUM(CASE WHEN id = 3 THEN 1 END) AS id_3
FROM YourTable
Ovenstående eksempel antager, at du på forhånd kender dine id'er, og der er meget få af dem, så det er ikke en stor sag at skrive manuelt få antal linjer med SUM(...) for hvert id
Hvis dette ikke er tilfældet - kan du først generere ovenstående forespørgsel programmatisk ved at køre nedenstående forespørgsel
SELECT 'SELECT ' +
GROUP_CONCAT_UNQUOTED(
'SUM(CASE WHEN id = ' + STRING(id) + ' THEN 1 END) AS id_' + STRING(id)
)
+ ' FROM YourTable'
FROM (
SELECT id FROM (
SELECT * FROM YourTable GROUP BY id ORDER BY id
)
som et resultat - du vil få en streng som nedenfor
SELECT SUM(CASE WHEN id = 1 THEN 1 END) AS id_1,SUM(CASE WHEN id = 2 THEN 1 END) AS id_2,SUM(CASE WHEN id = 3 THEN 1 END) AS id_3 FROM YourTable
Så nu skal du bare kopiere det og indsætte det i Query Editor og køre det
du kan se lignende eksempel her - https://stackoverflow.com/a/36623258/5221944