Tôi cần trợ giúp về truy vấn T-SQL. Tôi muốn đếm các trường có giá trị đặc biệt (ví dụ: 1).T-SQL Đếm hàng với các giá trị cụ thể (Truy vấn nhiều trong một)
Giả sử tôi có một bảng như:
IGrp | Item | Value1 | Value2
#############################
A | I11 | 0.52 | 1.18
A | I12 | 1.30 | 0.54
A | I21 | 0.49 | 2.37
B | I22 | 2.16 | 1.12
B | I31 | 1.50 | 0.28
Tôi muốn có một kết quả như:
IGrp | V1High | V2High
######################
A | 1 | 2
B | 2 | 1
Trong tâm trí của tôi này nên đi với biểu hiện này
SELECT IGrp, COUNT(Value1>1) AS V1High, COUNT(Value2>1) AS V2High
FROM Tbl GROUP BY IGrp
Nhưng đó không thể có trong T-SQL vì Count() không có giá trị boolean. Vì vậy, nó thực sự là cách duy nhất để thực hiện nhiều truy vấn với WHERE Value>1
và COUNT(*)
và tham gia sau đó? Hoặc là có một thủ thuật để đạt được kết quả mong muốn?
Xin cảm ơn trước.
Bất kỳ ý tưởng nào về điều này ảnh hưởng đến hiệu suất như thế nào? – BrianFinkel
Dựa trên kinh nghiệm của tôi, SQL Server có thể hoạt động tốt với lệnh này. – jing