使用多个条件格式化数据透视表

Format pivot data with multiple conditions

我当前的查询是

SELECT COUNT (DISTINCT("json_extract_scalar"("data", '$.user_id'))) AS users, event, date(timestamp)
FROM tableName
WHERE category='category'
GROUP BY event, date(timestamp)
ORDER BY date(timestamp) DESC

现在,它显示的输出格式为:

users | date | event |
3 | 2019-09-25 | visit |
4 | 2019-09-25 | click_button |
10 | 2019-09-25 | visit |

我希望它的形式是

| date | users_visits | users_clicks |
|2019-09-25 | 3 | 4 |
|2019-09-26 | 10 | 0 |

我写了这个查询,但它不起作用,我真的不明白如何正确地在旋转查询中获取计数查询

SELECT date(timestamp), [visit] AS users_visits, [click_button] AS users_clicks
FROM (
  SELECT 
    ("json_extract_scalar"("data", '$.user_id')), event, date(timestamp)
    FROM tableName
    WHERE category='category'
    GROUP BY event, date(timestamp) 
  )
  ) P
PIVOT 
(
  COUNT (DISTINCT  ("json_extract_scalar"("data", '$.user_id')))
  FOR event in 
  ([visit], [click_button])
  ) AS pvt
 order by pvt.date(timestamp)

条件聚合是否有效?

SELECT date(timestamp),
       COUNT(DISTINCT CASE WHEN event = 'visit'
                           THEN "json_extract_scalar"("data", '$.user_id')
                      END) as visits,
       COUNT(DISTINCT CASE WHEN event = 'click_button'
                           THEN "json_extract_scalar"("data", '$.user_id')
                      END) as click_button
FROM tableName
WHERE category = 'category'
GROUP BY date(timestamp)
ORDER BY date(timestamp) DESC