我想要一個資料框,其中 1 行僅包含一個月的資料。
month cust_id closed_deals cum_closed_deals checkout cum_checkout
2019-10-01 1 15 15 null null
2019-10-01 1 null 15 210 210
2019-11-01 1 27 42 null 210
2019-11-01 1 null 42 369 579
預期結果:
month cust_id closed_deals cum_closed_deals checkout cum_checkout
2019-10-01 1 15 15 210 210
2019-11-01 1 27 42 369 579
起初,我認為正常的 groupby 會起作用,但是當我嘗試僅按“month”和“cust_id”分組時,我收到一個錯誤訊息,指出 closed_deals 和 checkout 也需要在 groupby 中。
uj5u.com熱心網友回復:
您可以簡單地按(第一個月)聚合,cust_id并取所有其他列的最大值:
SELECT
month,
cust_id,
MAX(closed_deals) AS closed_deals,
MAX(cum_closed_deals) AS cum_closed_deals,
MAX(checkout) AS checkout,
MAX(cum_checkout) AS cum_checkout
FROM yourTable
GROUP BY
month,
cust_id;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/313916.html
標籤:sql PostgreSQL
上一篇:如何檢查兩列之間的值?
下一篇:PostgreSQL更新部分索引
