我有一个名为monthly\u agg的表,其中包含每月聚合的数据。
+------------+-----+----------+-----------+---------------+--------------+-------------+----------+---------+
| yyyy_mm_dd | id | app | ex_status | active_status | active_count | active_base | ex_count | ex_base |
+------------+-----+----------+-----------+---------------+--------------+-------------+----------+---------+
| 2019-01-31 | 123 | content | impl | impl | 390 | 321 | 344 | 340 |
+------------+-----+----------+-----------+---------------+--------------+-------------+----------+---------+
| 2019-01-31 | 333 | messages | impl | impl | 541 | 210 | 788 | 610 |
+------------+-----+----------+-----------+---------------+--------------+-------------+----------+---------+
| 2019-01-31 | 832 | photos | no | no | null | 430 | null | 100 |
+------------+-----+----------+-----------+---------------+--------------+-------------+----------+---------+
我想让每个应用,成为一个专栏。每个应用程序列应包含一个百分比,计算如下:
SELECT
yyyy_mm_dd,
id,
App,
SUM(CASE
WHEN (app = ‘content’ AND ex_status = ‘impl’) THEN ex_count/ex_base
WHEN (active_status = 'impl') THEN active_count/active_base
END) AS percentage
FROM
monthly_agg
我每个都要 app
值为列,然后该列的值为上述计算的结果。我怎么能这样转动table呢?理想情况下,我的输出如下所示:
+------------+-----+--------------------+---------------------+
| yyyy_mm_dd | id | content_percentage | messages_percentage |
+------------+-----+--------------------+---------------------+
| 2019-01-31 | 123 | 1.2 | null |
+------------+-----+--------------------+---------------------+
| 2019-01-31 | 333 | null | 2.57 |
+------------+-----+--------------------+---------------------+
我有大约20个应用程序,所以动态将是伟大的。
1条答案
按热度按时间cbjzeqam1#
iiuc您可以尝试: