sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit fiktivní proměnné sloupce pro tisíce kategorií v Google BigQuery?

Můžete použít níže uvedenou „technickou“

První spuštění dotazu č. 1. Vytváří dotaz (dotaz č. 2), který musíte spustit, abyste dosáhli požadovaného výsledku. Prosím, stále zvažte Moshaovy komentáře, než začnete „wild“ s tisíci kategoriemi:o)

Dotaz č. 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
)

Výsledek bude vypadat jako níže – dotaz č. 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

samozřejmě pro tři kategorie - můžete to udělat ručně, ale za tisíce vám to určitě udělá den!!

Výsledek dotazu č. 2 bude vypadat, jak očekáváte:

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



  1. java.sql.SQLException:ORA-03115:nepodporovaný datový typ sítě nebo reprezentace

  2. Zvláštní ostrovy

  3. Nasazení Django + Python 3 + PostgreSQL do AWS Elastic Beanstalk

  4. Nativní knihovna sqljdbc_auth.dll je již načtena v jiném classloaderu