我有一个带有记录的表,并且有一个名为的行category
。我插入了太多文章,并且我只希望从每个类别中选择两篇文章。
我试图做这样的事情:
我创建了一个视图:
CREATE VIEW limitrows AS
SELECT * FROM tbl_artikujt ORDER BY articleid DESC LIMIT 2
然后我创建了这个查询:
SELECT *
FROM tbl_artikujt
WHERE
artikullid IN
(
SELECT artikullid
FROM limitrows
ORDER BY category DESC
)
ORDER BY category DESC;
但这不起作用,只给我两个记录吗?
LIMIT仅停止语句返回的结果数。您正在寻找的通常称为分析/窗口/排序功能-MySQL不支持,但您可以使用变量进行仿真:
SELECT x.*
FROM (SELECT t.*,
CASE
WHEN @category != t.category THEN @rownum := 1
ELSE @rownum := @rownum + 1
END AS rank,
@category := t.category AS var_category
FROM TBL_ARTIKUJT t
JOIN (SELECT @rownum := NULL, @category := '') r
ORDER BY t.category) x
WHERE x.rank <= 3
如果不进行更改SELECT x.*
,则结果集将包含rank
和var_category
值-如果不是这种情况,则必须指定您真正想要的列。
问题内容: 我有一个带有表的数据库,看起来像这样: 有数十万条记录。每个可以在7个不同的表之一中,对应于一个表: 我想要一个从每个类别中选择1个随机项目的查询。解决这个问题的最佳方法是什么?我知道使用和用于类似的随机查询,但是我从未做过这样的事情。 问题答案: 此查询以随机顺序返回加入类别的所有项目: 要将每个类别限制为一个类别,请将查询包装在 partial中 : 请注意,当查询同时具有and
问题内容: 我有一个包含69个表的数据库,我只想选择每个表的前三个记录。 我可以在 每个表 上执行以下操作: 但是,如果我要手动执行此操作,则将花费大量时间。 您能建议一个解决方法吗? 我尝试了此解决方案,但可以使其正常工作(我不知道如何针对MSSQL对其进行修改) 编辑 感谢您的答复。我可能还不够清楚:我的意思是我想解析每个单独的表,并且只获得前3个记录,而不是转到下一个表。以下是我需要的Yar
问题内容: 可以说我有一张叫Gamers的桌子。 玩家 包含列,,。 我有兴趣选择每个游戏中得分最高的球员。 例如, 查询后,我希望获得GamerID 4、5和8的行。执行该操作的查询是什么? 问题答案: 试试这个: 这将输出: 您可以做的另一种选择是创建一个临时表或视图(如果您不喜欢子查询)。 然后: 或视图: 然后:
问题内容: 我正在运行此查询 但这不是我想要的结果,它返回多行。 我的一张桌子看起来像这个名字: 另一个表看起来像这个名字: 我如何使其选择查询,以便可以从两个表中获取与之相关的所有值,并使它看起来像这样 所需的输出: 谢谢!(提前!) 问题答案: 为您提供所需的输出(但这并不灵活,因此,如果添加要输出的更多详细信息,将无法进行更改而不进行更改):-
我试图从获取数据。总共有9个表格,我必须相应地从所有表格中显示产品列表。 我考虑过使用连接,并尝试了左连接,如下所示: 这里是主表,pid是从tbl2到tbl9的所有表的。 注意:这里我在所有表上使用了来避免长查询,但是在实际的数据库操作中,只提到特定的列来提高性能。 现在实际的问题是,我没有得到所有的记录从表使用左加入。只检索中对应的每个条目的最后一行。 我使用了GROUP BY来避免重复的左连
如何实现以下作为JPA条件查询的查询:sql JPA标准查询基于id从3个表中选择Table 2 long id; long bpId; String project Name; JPA条件查询根据id从3个表中选择表3长id;字符串empName;字符串contactNum;