如何使用 group by 在 2 个查询的结果之间执行减法?
第一个查询返回所有房屋的数量,比如说我可以出租的房屋数量,而第二个查询则返回已出租的房屋数量。
SELECT
(SELECT COUNT(*) FROM ... GroupBy ...)
- (SELECT COUNT(*) FROM ... WHERE ...group by) AS Difference
Run Code Online (Sandbox Code Playgroud)
第一个查询结果
count() column2 column3
3 studio newYork
6 studio pekin
3 apprtment pekin
5 house london
1 house lagos
Run Code Online (Sandbox Code Playgroud)
第二次查询结果
count() column2 column3
2 studio newYork
Run Code Online (Sandbox Code Playgroud)
我希望第一个查询根据第二个查询的结果进行更新
count() column2 column3
1 studio newYork
6 studio pekin
3 apprtment pekin
5 house london
1 house lagos
Run Code Online (Sandbox Code Playgroud)
只需使用条件聚合:
SELECT COUNT(*) -
SUM(CASE WHEN <some_condition> THEN 1 ELSE 0 END) AS some_count,
column2,
column3
FROM yourTable
GROUP BY column2, column3
Run Code Online (Sandbox Code Playgroud)
以下是原始第二个计数查询的子句<some_condition>中出现的内容。WHERE
| 归档时间: |
|
| 查看次数: |
7237 次 |
| 最近记录: |