私はデータベース駆動型のコミュニティWebサイトを用意しています。各エントリには日付があります。今では、エントリ数が1000の最初のユーザーが誰だったかを知りたいと思います。これはSQLクエリで可能ですか、それともプログラマチックに行う必要がありますか?または他のソリューション?集計値から「xを行った最初のユーザー」を確認してください
4
A
答えて
2
create table posts (
id int not null auto_increment primary key,
user_id int,
post_date date
) engine = myisam;
insert into posts (user_id,post_date)
values
(1,'2011-03-02'),
(1,'2011-04-10'),
(1,'2011-11-13'),
(2,'2011-03-02'),
(2,'2011-03-02'),
(3,'2011-01-01'),
(3,'2011-01-02'),
(3,'2011-01-03');
select * from (
select posts.*,
@num := if(@user_id = user_id, @num + 1, 1) as rownum,
@user_id:=user_id as uid
from posts,(select @user_id := 0, @num := 1) as t
order by user_id asc, post_date asc)
as tab
where rownum = 3
order by post_date limit 1
をOFFSETこれは私が3つのメッセージに達した最初のユーザーを見つける例です。それがあなたを助けることを願ってください。
+1
素晴らしい!あなたは天才です! – chiborg
0
私は、MySQLの構文を覚えていないが、私はあなたがこのような何かをすべきだと思う:
まず、(もちろん、ユーザーごとに)各エントリにそのカウントを追加します。そこにそれを行うためのいくつかのMySQLの特定の方法は、おそらくですが、他のすべてが失敗した場合、あなたは、行われたものと
SELECT Entry.*,
(SELECT COUNT(*) FROM Entries E2 WHERE E.id<E2.id AND E.user=E2.user) AS EntryCount
ような何かを入力時間によって1000の数、順序で最初のエントリを選択し、取ることができますそのユーザー。私はGROUP BYをした後の時間に集計を使用していないので、私はそこに終わりBY ORDERの配置のわからない
1
SELECT user_id, time
FROM table
LIMIT 1 OFFSET 999
GROUP BY user_id
ORDER BY time
、ネストされたクエリか何かが必要になる場合があります。
しかし、あなたはおそらく探していた部分がLIMITのXであるが、Y
関連する問題
- 1. 最初のプロジェクト構造を確認してください
- 2. リンクをクリックしたユーザーを確認してください
- 3. PHP最後の行を確認してください
- 4. 「ウェブサイトb」の「ウェブサイトa」からユーザー認証を確認してください
- 5. GITのコードブロックの最初のチェックを確認してください
- 6. EditTextオブジェクトの編集可能な値を確認してください
- 7. 2つの数値を分ける式ですが、最初に数値を確認してください
- 8. Javascript:コードスニペットでユーザーが変更を行うか確認してください
- 9. ASP.NETのNTユーザー名+パスワードを確認してください
- 10. カラムの値をすべて確認してください
- 11. LXSOCKET(iphone)の最後のエラーを確認してください
- 12. ユーザー入力にエレガントなエラーを確認してください
- 13. iPhoneで最新のxmlレポートを確認してください
- 14. javascriptからサーバのバージョンを確認してください
- 15. リスト内のLinqからキーワードを確認してください
- 16. Unityからのインターネット接続を確認してください。
- 17. sqliteのUIImageの重複値を確認してください
- 18. 特定の値のJSONArrayを確認してください
- 19. URLを確認してください
- 20. Pythonで初期化された変数を確認してください
- 21. suPHP変数の値を確認してください。
- 22. JSFの数値を確認してください
- 23. 同じ値を持つデータベースを確認してください。
- 24. Webページからログイン情報を確認してください
- 25. データベースから番号を確認してください
- 26. ebay api見つかったリスティングの数を確認してください
- 27. パスワードの最小/最大の長さを確認してください
- 28. UNIXでユーザーが入力した日時を確認してください。
- 29. 実行時にGCCのバージョンを確認してください
- 30. 配列に対する値を確認してください。
おそらく相関サブクエリで可能かもしれませんが、私の脳はすぐに濁っていて、どのように構造化されるのか考えることはできません。 –