【发布时间】:2023-05-27 19:58:01
【问题描述】:
我有一个有效的 SQL 语句
SELECT * FROM eventsTable WHERE columnName='Business'
我想将其添加为子查询...
COUNT(Business) AS row_count
我该怎么做?
【问题讨论】:
标签: sql
我有一个有效的 SQL 语句
SELECT * FROM eventsTable WHERE columnName='Business'
我想将其添加为子查询...
COUNT(Business) AS row_count
我该怎么做?
【问题讨论】:
标签: sql
这可能是最简单的方法,但不是最漂亮的:
SELECT *,
(SELECT Count(*) FROM eventsTable WHERE columnName = 'Business') as RowCount
FROM eventsTable
WHERE columnName = 'Business'
这也可以在不使用group by的情况下工作
SELECT *, COUNT(*) OVER () as RowCount
FROM eventsTables
WHERE columnName = 'Business'
【讨论】:
OVER 不受 SQL 标准支持,并且不会在所有 RDBMS 中都可用(例如,MySQL doesn't support it)。
SELECT e.*,
cnt.colCount
FROM eventsTable e
INNER JOIN (
select columnName,count(columnName) as colCount
from eventsTable e2
group by columnName
) as cnt on cnt.columnName = e.columnName
WHERE e.columnName='Business'
-- 增加空间
【讨论】:
要获取行数吗?
SELECT columnName, COUNT(*) AS row_count
FROM eventsTable
WHERE columnName = 'Business'
GROUP BY columnName
【讨论】:
where 子句。使用Having
where 子句和 group by。如果您想在使用 group by 时过滤聚合结果,则需要使用 having。
假设有一个名为business的列:
SELECT Business, COUNT(*) FROM eventsTable GROUP BY Business
【讨论】: