這是我在 StackOverflow 中的第一個問題。希望有人能提供幫助。
為什么我在“Total Love Review”和“Total Hate Review”上一直收到相同的值,即使我按 is_open 分組?
這是我的桌子
商業
| ID | 姓名 | 開了 | 星星 |
|---|---|---|---|
| 1 | 業務A | 1 | 5 |
| 2 | 業務B | 0 | 3.8 |
| 3 | 商務C | 1 | 5 |
| 4 | 業務D | 1 | 4 |
| 5 | 商務E | 0 | 3.2 |
審查
| 評論 ID | 業務編號 | 文本 |
|---|---|---|
| 1 | 1 | 愛情評論 |
| 2 | 1 | 愛情評論 |
| 3 | 1 | 愛情評論 |
| 4 | 2 | 仇恨評論 |
| 5 | 3 | 愛情評論 |
| 6 | 3 | 愛情評論 |
| 7 | 4 | 愛情評論 |
| 8 | 5 | 愛情評論 |
這是查詢
select business.is_open
,(select count (review.text)
from review
where review.text like '%love%') as 'Total Love Review'
,(select count (review.text)
from review
where review.text like '%hate%') as 'Total Hate Review'
,avg(business.stars) as 'Avg Stars'
from business
left join review on business.id = review.business_id
group by is_open
這是結果
| 開了 | 總愛評論 | 總仇恨評論 | 平均星級 |
|---|---|---|---|
| 0 | 7 | 1 | 3.5000 |
| 1 | 7 | 1 | 4.8333 |
預期成績:
| 開了 | 總愛評論 | 總仇恨評論 | 平均星級 |
|---|---|---|---|
| 0 | 1 | 1 | 3.5000 |
| 1 | 6 | 0 | 4.8333 |
db<>在這里擺弄
uj5u.com熱心網友回復:
另外,這里不需要子查詢。使用條件 SUM() 按型別計算評論。
select b.is_open
, sum( case when r.text like '%love%' then 1 else 0 end ) AS 'Total Love Review'
, sum( case when r.text like '%hate%' then 1 else 0 end ) AS 'Total Hate Review'
, printf("%.4f", avg(b.stars)) as 'Avg Stars'
from business b
left join review r on b.id = r.business_id
group by b.is_open
結果:
is_open | 總愛評論 | 總仇恨評論 | 平均星級
------: | ----------------: | ----------------: | :--------
0 | 1 | 1 | 3.5000
1 | 6 | 0 | 4.8333
db<>在這里擺弄
uj5u.com熱心網友回復:
為什么我一直收到相同的值...
子查詢不按 is_open 分組。因此,表格中顯示的欄位將是相同的。也許嘗試這樣的事情:
Select business.is_open
, review.review_text As Review
, count(review.review_text) As ReviewCount
, Avg(stars) As AvgStars
FROM business
LEFT JOIN review
ON business.business_id = review.business_id
GROUP BY is_open
, review_text
這將給出如下結果:
_____________________________________________________
| is_open | Review | ReviewCount | AvgStars |
|_________|________|________________________________|
| 0 | Hate | 5 | 1.4 |
|_________|________|________________________________|
| 0 | Love | 12 | 4.33333333333333 |
|_________|________|________________________________|
| 1 | Hate | 9 | 1.44444444444444 |
|_________|________|________________________________|
| 1 | Love | 19 | 4.42105263157895 |
_____________________________________________________
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439656.html
