Tôi đang cố gắng để tinh chỉnh một truy vấn mà tôi hiện đang sử dụng:MySQL - COUNT Conditional với GROUP BY
SELECT `puid`,
COUNT(DISTINCT `droid_v`) AS DROID,
COUNT(DISTINCT `sig_v`) AS sig,
SUM(NoExt) AS hits
FROM temp
GROUP BY `puid`
Và tôi cần phải làm cho nó chỉ đếm droid_v
nơi droid_V
lớn hơn 0. Có có thể điều kiện đếm theo cách này? Hiện tại, nó đang đếm các giá trị bằng 0 là có thể đếm được và tôi không thể thực sự thay đổi số 0 thành giá trị null
.
Tôi không cần biết giá trị đếm cho droid_V
= 0, tôi chỉ cần đếm nó nếu số đó lớn hơn 0. Số đó sẽ luôn là 0, 1, 2, 3 hoặc 4.
tôi đã thử:
SELECT `puid`,
COUNT(DISTINCT CASE WHEN `droid_v` > 0 THEN 1 END) AS DROID,
COUNT(DISTINCT `sig_v`) AS sig,
SUM(`NoExt`) AS hits
FROM temp
GROUP BY `puid`
Nhưng điều này mang lại một kết quả nhị phân (0 hoặc 1) không phải là số tôi mong đợi.
dụ output =
puid DROID sig hits
No PUID 1 1 252
x-fmt/92 1 5 1008
đầu ra dự đoán:
puid DROID sig hits
No PUID 1 1 252
x-fmt/92 3 5 1008
dữ liệu mẫu:
id;puid;droid_v;sig_v;speed;Ext;NoExt;tally
1;"No PUID";"3";"v13";"SLOW";"0";"63";"63"
2;"x-fmt/92";"3";"v13";"SLOW";"63";"0";"63"
3;"x-fmt/92";"3";"v37";"SLOW";"63";"63";"126"
4;"x-fmt/92";"3";"v45";"SLOW";"63";"63";"126"
5;"x-fmt/92";"3";"v49";"SLOW";"63";"63";"126"
6;"x-fmt/92";"3";"v50";"SLOW";"63";"63";"126"
7;"x-fmt/92";"5";"v13";"SLOW";"63";"0";"63"
8;"No PUID";"5";"v13";"SLOW";"0";"63";"63"
9;"x-fmt/92";"5";"v37";"SLOW";"63";"63";"126"
10;"x-fmt/92";"5";"v45";"SLOW";"63";"63";"126"
11;"x-fmt/92";"5";"v49";"SLOW";"63";"63";"126"
12;"x-fmt/92";"5";"v50";"SLOW";"63";"63";"126"
13;"No PUID";"6";"v13";"FAST";"0";"63";"63"
14;"x-fmt/92";"6";"v13";"SLOW";"63";"0";"63"
15;"No PUID";"6";"v13";"SLOW";"0";"63";"63"
16;"x-fmt/92";"6";"v13";"FAST";"63";"0";"63"
17;"x-fmt/92";"6";"v37";"SLOW";"63";"63";"126"
18;"x-fmt/92";"6";"v37";"FAST";"63";"63";"126"
19;"x-fmt/92";"6";"v45";"FAST";"63";"63";"126"
20;"x-fmt/92";"6";"v45";"SLOW";"63";"63";"126"
21;"x-fmt/92";"6";"v49";"FAST";"63";"63";"126"
22;"x-fmt/92";"6";"v49";"SLOW";"63";"63";"126"
23;"x-fmt/92";"6";"v50";"FAST";"63";"63";"126"
24;"x-fmt/92";"6";"v50";"SLOW";"63";"63";"126"
bạn có thể thêm mệnh đề 'WHERE' không? –
từ ví dụ bạn đã cung cấp, kết quả mong đợi của bạn là gì? –