【问题标题】:Select X items from every type [duplicate]从每种类型中选择 X 个项目 [重复]
【发布时间】:2012-02-17 14:39:14
【问题描述】:

我有一个 mysql 数据库,里面有 1 个表。 该表包含“id”、“Name”、“Type”。

我想从每种类型中获取 10 行。例如:

(在这个例子中我只想要 1 个)

0 - test1 - a
1 - test2 - a
2 - test3 - b

比这还需要选择:

0 - test1 - a
2 - test3 - b

如何在 1 个 SQL 查询中做到这一点?还是说不可能?

【问题讨论】:

标签: php mysql sql apache limit


【解决方案1】:

试试这个查询 -

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2011-09-01
    • 2012-10-04
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多