以下のサンプルデータを与えて、time
の1分ごとに1行だけを取得できますか?mutilple条件を持つ時間ごとのMysqlグループ
私は、このような状態を作る必要があります。
SELECT IF (`Flag` IS NOT NULL,
[fetch flag row],
[otherwise fetch one row from that minute]);
サンプル・データ
ID Rate Flag time
1 68.65 null 2012-04-18 10.00.01
2 68.63 null 2012-04-18 10.00.11
3 68.68 null 2012-04-18 10.00.21
4 68.70 null 2012-04-18 10.00.31
5 68.71 null 2012-04-18 10.00.41
6 68.60 null 2012-04-18 10.00.51
7 68.64 null 2012-04-18 10.01.01
8 68.75 null 2012-04-18 10.01.11
9 68.72 1 2012-04-18 10.01.21
10 68.63 null 2012-04-18 10.01.31
11 68.62 null 2012-04-18 10.01.41
12 68.60 null 2012-04-18 10.01.51
Expected Output
1 68.65 null 2012-04-18 10.00.01
9 68.72 1 2012-04-18 10.01.21
これは私がこれまで持っているものである:あなたのための
SELECT FLAG as signal, DATE_FORMAT(TIME, '%Y-%m-%d %H:%i') as time, RATE as rate
FROM RATES WHERE (FLAG!='' || (DATE_FORMAT(TIME, '%s')>50))
GROUP BY time
ORDER BY time DESC,FLAG DESC;
感謝を助けて。
ニキル
SELECT信号としてFLAG、DATE_FORMAT:時間として(TIME、 '%Y-%M-%D%H%I')、料金FROM WHERE(FLAG率としてRATEこれは問題ありませんが、私のテーブルには巨大なレコードがありますが、このクエリは長い実行時間を要します(例:DATE_FORMAT(TIME、 '%s')> 50))GROUP BY時間ORDER BY時間DESC、FLAG DESC – user1340004