我在這里尋找一些 GROUP BY 問題,但沒有人像我一樣。
我有一個像這樣的當前表:
|day | client|
----------------
|2020-01-07|id11|
|2020-01-07|id10|
|2020-01-06|id09|
|2020-01-06|id08|
|2020-01-05|id07|
|2020-01-04|id06|
|2020-01-03|id05|
|2020-01-03|id04|
|2020-01-02|id03|
|2020-01-01|id02|
|2020-01-01|id01|
我想創建一個新列,其中包含過去 7 天(第 6 天)(不是每周!)的唯一客戶的出現次數,并按天顯示:
|day |last 7 day clients|
----------------
|2020-01-07|11|
|2020-01-06| 9|
|2020-01-05| 7|
|2020-01-04| 6|
|2020-01-03| 5|
|2020-01-02| 3|
|2020-01-01| 2|
這里的所有回答者都每周分組!
我嘗試了什么:
pd.read_sql_query("""SELECT DATE(day) dateColumn,
COUNT(DISTINCT client) AS seven_day_users
FROM table
GROUP BY date(dateColumn, '-6 days')
ORDER BY dateColumn DESC;
""", conn)
但結果是按天分組,而不是按區間分組。
uj5u.com熱心網友回復:
使用表和聚合的自連接:
SELECT t1.day,
COUNT(DISTINCT t2.client) `last 7 day clients`
FROM tablename t1 INNER JOIN tablename t2
ON t2.day BETWEEN date(t1.day, '-6 day') AND t1.day
GROUP BY t1.day
ORDER BY t1.day DESC;
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451461.html
上一篇:js取最近n個月的天數
下一篇:如何在任何串列中設定今天的宏條件
