MySQL查询,该查询将忽略重复次数最少且最多的结果

MySQL查询,该查询将忽略重复次数最少且最多的结果,mysql,Mysql,我需要一个MySQL查询来获得结果,其中不会有重复次数最多和最少的值 这意味着什么 如果此MySQL查询: SELECT Ocjena,COUNT(*) FROM ocjenjivanje GROUP BY Ocjena; 返回: 我需要提供下一个结果的查询: Ocjena 1 3 5 谢谢试试这个: SELECT o.* FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o INNER J

我需要一个MySQL查询来获得结果,其中不会有重复次数最多和最少的值

这意味着什么

如果此MySQL查询:

 SELECT Ocjena,COUNT(*) FROM ocjenjivanje GROUP BY Ocjena; 
返回:

我需要提供下一个结果的查询:

Ocjena 
1
3
5
谢谢

试试这个:

SELECT o.*
FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o
INNER JOIN (SELECT Min(c) AS l, Max(c) AS h FROM  (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena)) AS m
ON o.c <> m.l AND o.c <> m.h
----OR
--ON o.c NOT IN(m.l, m.h)
或者您可以使用此查询:

SELECT Ocjena, c
FROM
( SELECT o.*, @min:=IF(@min > o.c, o.c, @min) AS l, @max:=IF(@max < o.c, o.c, @max) AS h
  FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o
  , (select @max:=0, @min:=32000) AS m) AS x
WHERE c NOT IN(l, h)
SELECT o.*
FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o
INNER JOIN (SELECT Min(Ocjena) AS l, Max(Ocjena) AS h FROM ocjenjivanje) AS m
ON o.Ocjena <> m.l AND o.Ocjena <> m.h

SELECT Ocjena, COUNT(*) AS c 
FROM ocjenjivanje AS o
WHERE o.Ocjena <> (SELECT Min(Ocjena) FROM ocjenjivanje)
AND o.Ocjena <> (SELECT Max(Ocjena) FROM ocjenjivanje)
GROUP BY Ocjena

SELECT Ocjena, COUNT(*) AS c 
FROM ocjenjivanje AS o
WHERE o.Ocjena NOT IN (SELECT Min(Ocjena) FROM ocjenjivanje UNION SELECT Max(Ocjena) FROM ocjenjivanje)
GROUP BY Ocjena
这是我的解决办法

我不知道我能不能让自己看起来更专业或者更快,或者诸如此类

SELECT *    FROM     `Ocjenjivanje`  WHERE Ocjena != (    SELECT Ocjena 
FROM     `Ocjenjivanje`
GROUP BY `Ocjena`
ORDER BY `Ocjena` DESC
LIMIT 1) AND OCjena != ( SELECT Ocjena
FROM     `Ocjenjivanje`
GROUP BY `Ocjena`
ORDER BY `Ocjena` ASC
LIMIT 1)
GROUP BY `Ocjena`

您可以从答案中发布的查询中获得如下结果,但使用以下查询之一不会返回问题中所需的行:

SELECT Ocjena, c
FROM
( SELECT o.*, @min:=IF(@min > o.c, o.c, @min) AS l, @max:=IF(@max < o.c, o.c, @max) AS h
  FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o
  , (select @max:=0, @min:=32000) AS m) AS x
WHERE c NOT IN(l, h)
SELECT o.*
FROM (SELECT Ocjena, COUNT(*) AS c FROM ocjenjivanje GROUP BY Ocjena) AS o
INNER JOIN (SELECT Min(Ocjena) AS l, Max(Ocjena) AS h FROM ocjenjivanje) AS m
ON o.Ocjena <> m.l AND o.Ocjena <> m.h

SELECT Ocjena, COUNT(*) AS c 
FROM ocjenjivanje AS o
WHERE o.Ocjena <> (SELECT Min(Ocjena) FROM ocjenjivanje)
AND o.Ocjena <> (SELECT Max(Ocjena) FROM ocjenjivanje)
GROUP BY Ocjena

SELECT Ocjena, COUNT(*) AS c 
FROM ocjenjivanje AS o
WHERE o.Ocjena NOT IN (SELECT Min(Ocjena) FROM ocjenjivanje UNION SELECT Max(Ocjena) FROM ocjenjivanje)
GROUP BY Ocjena

谢谢1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第4行的“ON o.c m.l和o.c m.h LIMIT 0,25”附近使用的正确语法。由于您的努力,我将接受您的答案,但这并没有给我预期的结果。下面是我如何解决它的。当然是1,3,4!!!!!!!!!!!!!!!!!!但是这个查询返回Ocjena{2,3,4},而不是重复次数最多和最少的值。。。