簡體   English   中英

Postgres得到計數但是由另一列分組

[英]Postgres get count but group by another column

如果我有一張像這樣的桌子

customer liked
1        true
2        true
3        true
1        true
2        false

我如何計算總喜歡但按客戶分組,所以我最終得到的結果如下:

customer total_likes
1        2
2        1
3        1

GROUP BY和條件COUNT應該:

SELECT customer, COUNT(CASE WHEN liked = 'true' THEN 1 END) AS likes
FROM yourtable
group by customer

如果它是布爾列,請執行以下操作:

SELECT customer, COUNT(CASE WHEN liked THEN 1 END) AS likes
FROM yourtable
group by customer

在Postgres中,您可以使用簡寫從布爾值轉換為整數:

select customer, sum(liked::int) as total_likes
from t
group by customer;

請注意,這將返回所有客戶 ,而不僅僅是那些喜歡的客戶 如果您只想要喜歡的客戶,那么where子句是合適的:

select customer, count(*)
from t
where liked
group by customer;
SELECT CUSTOMER, COUNT(LIKED) AS TOTAL_LIKES
FROM TABLE
WHERE LIKED = 'true'
GROUP BY CUSTOMER

我假設liked是一個布爾類型字段,

SELECT customer, COUNT(liked) AS total_likes
FROM table_name 
WHERE liked is true
GROUP BY customer

COUNT函數內使用CASE語句。

SELECT customer, COUNT(CASE WHEN liked = 'true' THEN 1 ELSE NULL END) AS total_likes
FROM yourtable

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM