在MySQL
中为每个组提取顶n行 需要为您的MySQL数据中的每个组获取顶部N行吗? 标准订购可能并不总是会给您期望的结果。 本指南显示了如何使用MySQL功能强大的窗口函数,例如
>,和ROW_NUMBER
>,以有效地实现此次。
RANK
想象一个带有DENSE_RANK
的表(主键),
列。要获取每个PKID
>的前5行,请使用CATID
value
CATID
ROW_NUMBER
>在每个
<code class="language-sql">SELECT PKID, CATID, value, ROW_NUMBER() OVER (PARTITION BY CATID ORDER BY value DESC) AS RowNum FROM table_name;</code>订购(在这种情况下为下降)。 要仅过滤前5个,请将其包裹在一个子查询中:
ROW_NUMBER
CATID
此精制查询有效地仅检索每个类别的前5行,为您的数据检索提供了精确且优化的解决方案。 请记住调整条件以控制每个组所需的顶部行数。
以上是如何获取MySQL中每组的前N行?的详细内容。更多信息请关注PHP中文网其他相关文章!