有一个数据表,这个数据表有一个A属性和B属性,A属性有0、1三种情况,B属性是具体的日期,例如2022-09-08。希望写一个SQL语句,统计A属性分别取值为0、1,B属性分别取值为第一季度、第二季度、第三季度、第四季度的总计数
时间: 2024-04-14 07:27:42 浏览: 131
将表中数据生成SQL语句!
你可以使用以下SQL语句来统计A属性分别取值为0、1,B属性分别取值为第一季度、第二季度、第三季度、第四季度的总计数:
```sql
SELECT A,
CASE WHEN EXTRACT(MONTH FROM B) IN (1, 2, 3) THEN '第一季度'
WHEN EXTRACT(MONTH FROM B) IN (4, 5, 6) THEN '第二季度'
WHEN EXTRACT(MONTH FROM B) IN (7, 8, 9) THEN '第三季度'
WHEN EXTRACT(MONTH FROM B) IN (10, 11, 12) THEN '第四季度'
END AS quarter,
COUNT(*) AS count
FROM your_table
WHERE A IN (0, 1)
GROUP BY A, quarter;
```
这条SQL语句会根据A属性和B属性进行分组,并计算每个分组的行数。在这里,我们使用了CASE语句来根据B属性的月份将其映射为对应的季度。然后使用GROUP BY子句按照A属性和quarter进行分组,并使用COUNT(*)函数来计算每个分组的总计数。最终,查询结果会返回A属性、quarter和对应的总计数。
阅读全文