2009-11-30 45 views
7

Tôi có một sql như thế này:MySQL: cách nhận hồ sơ có số> 1?

SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
ORDER BY cc DESC 

mà trả lại toàn bộ hồ sơ với số lượng #. Tuy nhiên, tôi có thể làm gì nếu tôi chỉ muốn nhận số đếm> 1?

Trả lời

20
SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
HAVING 1 < count(*) 
ORDER BY cc DESC 
+2

Tôi chưa bao giờ viết nó là 'CÓ 1

+1

Tại sao bạn đặt 1 ở phía bên trái của biểu thức? Chắc chắn, nó phù hợp về mặt logic, nhưng chỉ tò mò ... – gahooa

+1

khả năng đọc. sẽ dễ dàng nắm bắt nhanh hơn cấu trúc của biểu thức nếu toán tử infix gần với biểu thức bắt đầu: '1 1' –

2

Bạn cần một khoản HAVING, ví dụ:

SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
HAVING COUNT(*) > 1 
ORDER BY cc DESC 

Dưới đây là một số background.

1
SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
HAVING COUNT(*) > 1 
ORDER BY cc DESC 

Tôi không sử dụng MySQL, nhưng nó cần hỗ trợ HAVING-it đã được sử dụng cùng lúc.

0

Các HAVING khoản

SELECT *, count(*) as cc 
    FROM manytomany 
    GROUP BY aid, bid 
    HAVING cc > 1 
    ORDER BY cc DESC 
2

Bạn sử dụng có điều khoản.

SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
HAVING count(*) > 1 
ORDER BY cc DESC 
1
SELECT *, count(*) as cc 
FROM manytomany 
GROUP BY aid, bid 
HAVING cc>1 
ORDER BY cc DESC 
Các vấn đề liên quan