我具有这样的表结构:ext_no
,value
..我想选择条件不同的记录,例如ext_no
的计数超过两个和 IF并且只有IF ,所有ext_no
value
均为零。
我想要下面给出的预期结果......如何写mysql查询这个..?任何帮助将不胜感激..预先感谢..
表结构:
CREATE TABLE `test` (
`ext_no` int(5) default NULL,
`value` int(3) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `test`
--
INSERT INTO `test` (`ext_no`, `value`) VALUES
(12133, 0),
(12133, 0),
(12133, 0),
(22222, 0),
(44226, 0),
(44226, 0),
(44226, 1),
(44226, 2),
(99902, 1),
(99902, 2),
(99902, 3),
(11505, 0),
(11505, 0),
(11505, 0),
(11505, 0);
预期结果:
ext_no value
12133 0
11505 0
编辑:我尝试过
select distinct ext_no, value from test where value ='0' order by ext_no DESC;
答案 0 :(得分:3)
count
跳过null
值。因此,您可以count
一个case
值的0
表达式,然后使用having
条件来检查此计数是否等于总计数:
SELECT ext_no, MAX(value)
FROM test
GROUP BY ext_no
HAVING COUNT(*) > 2 AND
COUNT(*) = COUNT(CASE value WHEN 0 THEN 1 END)
答案 1 :(得分:0)
您可以使用分组依据和具有子句来尝试这一操作:
REPEAT_MODE_OFF
答案 2 :(得分:0)
尝试一下
W,L,W,W,L