Tôi có một câu lệnh SQL mà làm việcSQL subquery với COUNT giúp đỡ
SELECT * FROM eventsTable WHERE columnName='Business'
Tôi muốn thêm này như một subquery ...
COUNT(Business) AS row_count
Làm thế nào để làm điều này?
Tôi có một câu lệnh SQL mà làm việcSQL subquery với COUNT giúp đỡ
SELECT * FROM eventsTable WHERE columnName='Business'
Tôi muốn thêm này như một subquery ...
COUNT(Business) AS row_count
Làm thế nào để làm điều này?
Đây có lẽ là cách đơn giản nhất, không phải là đẹp nhất mặc dù:
SELECT *,
(SELECT Count(*) FROM eventsTable WHERE columnName = 'Business') as RowCount
FROM eventsTable
WHERE columnName = 'Business'
này cũng sẽ làm việc mà không cần phải sử dụng một số group by
SELECT *, COUNT(*) OVER() as RowCount
FROM eventsTables
WHERE columnName = 'Business'
Bạn có muốn nhận số hàng không?
SELECT columnName, COUNT(*) AS row_count
FROM eventsTable
WHERE columnName = 'Business'
GROUP BY columnName
Không thể có mệnh đề 'where' trong nhóm theo. Sử dụng 'Have' – Jim
@Jim - Bạn có thể sử dụng mệnh đề' where' với 'group by'. Bạn sẽ cần phải sử dụng 'have' nếu bạn muốn lọc kết quả của một tổng hợp khi sử dụng' nhóm bởi'. – codingbadger
Giả sử có một cột tên kinh doanh:
SELECT Business, COUNT(*) FROM eventsTable GROUP BY Business
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'
- Không gian được thêm
Khoản +1 trên * thanh lịch * – gbn
Xin lưu ý rằng 'OVER' không được hỗ trợ bởi tiêu chuẩn SQL, và nó sẽ không có sẵn trên tất cả các RDBMS (Ví dụ, [MySQL không hỗ trợ nó] (http: //stackoverflow.com/questions/6292679/mysql-using-correct-syntax-for-the-over-clause)). – McSonk