我有一个mysql数据库,在那里我有1个表。 该表包含“id”,“Name”,“Type”。
我想从每种类型获得10行。例如:
(在这个例子中我只想要1)
0 - test1 - a
1 - test2 - a
2 - test3 - b
这需要选择:
0 - test1 - a
2 - test3 - b
如何在1个SQL查询中执行此操作?或者这是不可能的?
答案 0 :(得分:4)
尝试此查询 -
SELECT id, name, type
FROM (
SELECT t1.*, COUNT(*) cnt FROM table t1
LEFT JOIN table t2
ON t2.type = t1.type AND t2.id <= t1.id
GROUP BY
t1.type, t1.id
) t
WHERE cnt <= 10;