0

各ユーザーがテーブルに複数の行を持つことができるこのテーブルがあるので、各ユーザーの上位 2 行を見つけたいと思いました。

このリンクを見て、解決策を試しました

SQL - タイプごとに 3 つのヒットのみを教えてください

SELECT user_fk, order_number, @num := IF( @group = user_fk, @num +1, 1 ) AS row_number, @group := user_fk AS dummy
FROM summary
ORDER BY  `user_fk` ASC

上記のクエリを使用して、row_number が増加するかどうかを確認しますが、増加しません。理由はありますか?

4

2 に答える 2

0
SELECT user_fk, order_number from 
(SELECT user_fk, order_number, @num := IF( @group = user_fk, @num +1, 1 ) AS row_number, @group := user_fk AS dummy
FROM summary
ORDER BY  `user_fk` ASC) as x 
where row_number<=2

クエリの一部を見逃していると思います。

于 2013-06-26T03:57:33.487 に答える
0

それは働いています

インライン ビューで囲む

sqlfiddle デモ

于 2013-06-26T03:52:24.200 に答える