我的数据库结构就像
Id Price Code
1 0.12 93
2 0.13 93
3 0.54 93
4 0.96 93
5 0.10 94
6 0.30 94
7 0.90 94
8 1.40 94
9 2.30 94
我必须逐个代码地获取数据,我希望中间行作为输出。 在上面的例子中,我希望输出为
Id Price Code
3 0.54 93
7 0.90 94
以上是我想要的中间行输出或具有最大价格值的行,如果有两个中间行,如行数4,6,8
答案 0 :(得分:2)
可以通过一些技巧来完成。
SELECT id,
price,
code
FROM table1
WHERE id IN (SELECT Ceil(Avg(id)) AS `id`
FROM table1
GROUP BY code);
答案 1 :(得分:1)
SELECT table1.*
FROM table1
JOIN (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX( GROUP_CONCAT(id ORDER BY id ASC), ',', CEIL(COUNT(*) / 2) ), ',', -1) AS id
FROM table1
GROUP BY CODE
) t USING(id)