【问题标题】:Splitting a table by groups SQL按组拆分表 SQL
【发布时间】:2021-09-18 05:47:41
【问题描述】:

我有一个企业列表,有很多列,但这些是重要的:

| name     |stars | review_count |
| -------- | -----| -----------  |
| First    | 3.0  |        1235  |
| Second   | 4.4  |          45  |
| third    | 2.5  |         123  |    

所以想用它的星星值来组合它

|stars  | review_count |
| ----- |  ----------- |
|  < 3  |         1358 |
|  >=3  |           45 |

我试过了

select sum(review_count), stars
from business 
group by (2<=stars and stars <3)  or stars >3

但是没有用。

【问题讨论】:

  • 是SQL(标题)还是S(标签)?如果是 SQL,请标记您的 SQL 引擎
  • 在您的问题中,您提到了一个列stars,但在代码中我看到了review_count。还有你所说的any是什么意思?发布示例数据和预期结果以阐明您想要什么。
  • 好的,我将更改所有内容以使其更清晰。 ty
  • =3 的结果应该是 1280

标签: sql sqlite


【解决方案1】:

您可以使用 CASE 表达式创建 2 个组并按其分组:

SELECT CASE WHEN stars < 3 THEN '<3' ELSE '>=3' END stars, 
       SUM(review_count) review_count 
FROM business 
GROUP BY 1;

请参阅demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多