【发布时间】:2018-03-27 06:08:28
【问题描述】:
我有消息表: 消息:
Id, Content, Category, createdAt
1, test1, cat1, 2018-03-26 18:22:39
2, test2, cat1, 2018-03-26 18:22:46
3, test3, cat2, 2018-03-26 18:22:52
4, test4, cat2, 2018-03-26 18:23:11
5, test5, cat2, 2018-03-26 18:23:13
6, test6, cat1, 2018-03-26 18:23:17
从这些数据中,我想选择每个类别的 2 行,即 Cat1 和 Cat2,每行 2 行。
那么检索这些数据的 SQL 查询是什么?这是示例数据,就像这样,我有数千行和 20 到 25 个不同的类别。所以我想从每个类别中检索相同数量的行。此外,这些行应根据 createdAt 列按升序排列。
预期输出(假设 createdAt 是最后一行):
Id, Content, Category, createdAt
6, test6, cat1, 2018-03-26 18:23:17
2, test2, cat1, 2018-03-26 18:22:46
5, test5, cat2, 2018-03-26 18:23:13
4, test4, cat2, 2018-03-26 18:23:11
【问题讨论】:
-
指定预期结果。并向我们展示您当前的查询尝试。
-
使用“按类别分组”
-
我在问题中添加了预期的输出。按类别分组,每个类别只返回单行。所以在这种情况下可能需要嵌套查询
-
您的表头有 4 列,但表数据只有 3 列。 createdAt 似乎不见了。那一栏重要吗?
-
好的,我也会添加 createdAt 的值