我试图创建一个非常复杂的MySQL查询,这将导致单个值显示3次的唯一ID数。
-- id ------ p -------- v -----
| 1 | a | 0 |
-------------------------------
| 1 | a | 0 |
-------------------------------
| 1 | a | 0 |
-------------------------------
| 1 | b | 15 |
-------------------------------
| 1 | b | 30 |
-------------------------------
| 2 | a | 0 |
-------------------------------
| 2 | a | 0 |
-------------------------------
| 2 | a | 0 |
-------------------------------
| 2 | a | 0 |
-------------------------------
| 2 | b | 85 |
-------------------------------
| 3 | a | 0 |
-------------------------------
| 3 | a | 0 |
-------------------------------
| 3 | a | 0 |
-------------------------------
| 3 | b | 51 |
-------------------------------
| 3 | b | 75 |
-------------------------------
对于1
的ID,a
的值column p
显示3次。因此我们在返回值(返回值= 1)中添加一个,对于id 3
,同样的事情发生,其中a
显示3次。所以返回值现在应该是2。
基本上,我想知道值id
正好a
次显示3
次v
列等于0
{ p>
答案 0 :(得分:0)
select t.id
from mytable t
where t.p = 'a' and t.v = 0
group by t.id
having count(*) = 3