如何将查询组拆分为SQL中的频率/出现次数 - Google BigQuery

时间:2018-05-10 14:59:05

标签: sql google-bigquery

我有一些只有3个属性的数据

名 疾病 是/否

我对一组病毒感染了多少次的频率感兴趣,无论是一次,两次,三次。

所以我最终得到了一张像这样的表

Frequency - Count
F1            300
F2            121921
F3            121
F4            2
F5+           2323

这是我试写的一些代码。我坚持的一点是如何告诉SQL当一个人没有接触到病毒时给他们一个0分,如果它曾经是1,那么两次是2.

SELECT
CASE WHEN F0 = 0 THEN 'F0'
     WHEN F1 = 1 THEN 'F1'
     WHEN F2 = 1 THEN 'F2'
     wHEN F3 = 3 THEN 'F3'
     WHEN F4 = 4 THEN 'F4'
     WHEN F5 >= 5 THEN 'F5
    END   AS Virus_Frequency,
  COUNT(*)                                AS VIRUS_COUNT

FROM
(
    SELECT
      distinct name,
      SUM(CASE WHEN illness in (43598435, 24343, 45413, 2455, 54574511, 2074123, 34351153) THEN 0 END)   AS F0,

0 个答案:

没有答案