[英]Count a column by another distinct column
所以我想用另一個不同的列來計算某列的總和
我的桌子看起來像這樣
日期 | 用戶 | ID | 重量 |
---|---|---|---|
5/23 | 姓名 | id1 | 1 |
5/23 | 姓名 | id2 | 0.5 |
5/23 | 姓名 | id2 | 0.2 |
5/23 | 名稱 2 | id1 | 2 |
預期的結果是:
日期 | 用戶 | 數數 |
---|---|---|
5/23 | 姓名 | 1.5 |
5/23 | 名稱 2 | 2 |
現在我有
select
, date
, name
, count(distinct id)
from table
group by
date
, name
這導致僅將唯一 ID 計為 1,沒有分配權重
日期 | 用戶 | 數數 |
---|---|---|
5/23 | 姓名 | 2 |
5/23 | 名稱 2 | 2 |
在任何日期,每個 ID 都可能有多個用戶操作的記錄,它們都分配了不同的權重。 我想計算用戶在所有日期、所有唯一 ID 的這些操作的總和。 因此,如果他在某個日期為某個 ID 執行了權重為 0.5 和 0.2 的操作,它只會計算最大權重,即 0.5。 但如果他還在同一天對另一個 ID 執行了另一個操作,比如權重為 0.7,那么我希望在該日期看到的最終結果將是 0.7+0.5,即 1.2
唔。 . . 似乎您想要每個日期、用戶和 id 的最大值,然后是平均值:
select date, user, avg(max_weigh * 1.0)
from (select date, user, id, max(weight) as max_weigh
from t
group by date, user, id
) dui
group by date, user;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.