mysql查询选择条件上不同的记录?

时间:2018-10-16 16:41:50

标签: mysql select distinct distinct-values

我具有这样的表结构:ext_novalue ..我想选择条件不同的记录,例如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;

3 个答案:

答案 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