我需要一个MySQL查询来获得没有大多数和最少重复值的结果。
这意味着什么?
如果这个MySQL查询:
SELECT Ocjena,COUNT(*) FROM ocjenjivanje GROUP BY Ocjena;
返回:
我需要查询,它会给我下一个结果:
Ocjena
1
3
5
由于
答案 0 :(得分:0)
试试这个:
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)
答案 1 :(得分:0)
这是我的解决方案。
我不知道我是否可以让自己看起来更专业或更快,或类似的东西。
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`
答案 2 :(得分:0)
你可以从你的答案中发布的查询得到这样的结果(但它不会返回有问题的行),使用以下查询之一:
tempScorePlayer = tempScorePlayer + number