Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak utworzyć fałszywe kolumny zmiennych dla tysięcy kategorii w Google BigQuery?

Możesz użyć poniższego „techniki”

Pierwsze uruchomienie zapytania nr 1. Generuje zapytanie (zapytanie nr 2), które musisz uruchomić, aby uzyskać pożądany wynik. Proszę, nadal bierz pod uwagę komentarze Mosha, zanim przejdziesz „dziko” z tysiącami kategorii :o)

Zapytanie nr 1:

SELECT 'select UserID, ' + 
   GROUP_CONCAT_UNQUOTED(
    'sum(if(category = "' + STRING(category) + '", 1, 0)) as ' + STRING(category)
   ) 
   + ' from YourTable group by UserID'
FROM (
  SELECT category 
  FROM YourTable  
  GROUP BY category
)

Wynik będzie taki jak poniżej - Zapytanie nr 2

SELECT
  UserID,
  SUM(IF(category = "A", 1, 0)) AS A,
  SUM(IF(category = "B", 1, 0)) AS B,
  SUM(IF(category = "C", 1, 0)) AS C
FROM
  YourTable
GROUP BY
  UserID

oczywiście dla trzech kategorii - możesz to zrobić ręcznie, ale dla tysięcy to na pewno będzie dla ciebie dzień!!

Wynik zapytania nr 2 będzie wyglądał zgodnie z oczekiwaniami:

UserID  A   B   C    
1       1   1   0    
2       0   0   1    
3       1   1   1    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać niestandardowe ograniczenie CHECK w tabeli MySQL?

  2. Utwórz bazę danych MySQL z Javy

  3. Jaki jest odpowiednik ELT() w SQL Server w MySQL?

  4. Korzystanie z tunelowania SSH jako alternatywy VPN

  5. Jak zrobić wstawkę wsadową w MySQL