1
ここに自分のDBがあります。MAX()とGROUP BYを使用しても正しい結果が返されない
id - date_time - barcode_no - result
1 - '2017-08-01 01:00:00' - 'A' - '1'
2 - '2017-08-01 02:00:00' - 'A' - '2'
31 - '2017-08-01 03:00:00' - 'A' - '3'
4 - '2017-08-01 04:00:00' - 'B' - '4'
5 - '2017-08-01 05:00:00' - 'B' - '5'
61 - '2017-08-01 06:00:00' - 'B' - '6'
7 - '2017-08-01 07:00:00' - 'C' - '7'
8 - '2017-08-01 08:00:00' - 'C' - '8'
9 - '2017-08-01 09:00:00' - 'C' - '9'
100- '2017-08-01 10:00:00' - 'C' - '10'
私は、MySQL
SELECT barcode_no,MAX(date_time),result
FROM test_data_main
GROUP BY barcode_no
にこのクエリを持っているが、それは私に正しい結果を与えるものではありません。私もany_value(結果)を使用しましたが、私は同じ間違った結果を得ます。
ここで私のサンプルDBとSQL Fiddleのコードのリンクです。 SAMPLE CODE
私の要件は、最新のbarcode_noの行を取得することです。
id - date_time - barcode_no - result
31 - '2017-08-01 03:00:00' - 'A' - '3'
61 - '2017-08-01 06:00:00' - 'B' - '6'
100- '2017-08-01 10:00:00' - 'C' - '10'
が、私の間違った結果が、私は私のクエリと間違っているかわからないのです
id - date_time - barcode_no - result
31 - '2017-08-01 03:00:00' - 'A' - '1'
61 - '2017-08-01 06:00:00' - 'B' - '4'
100- '2017-08-01 10:00:00' - 'C' - '7'
ました。お知らせ下さい。
ありがとうございます。
*「私の要件は、最新のbarcode_noの行を取得することです。」* - あなたは 'GROUP BY'を使用してテーブルから行を取得することはできません。 'GROUP BY'はテーブルからのデータを使って新しい行を計算します。 [類似の質問](https://stackoverflow.com/q/12102200/4265352)で[この回答](https://stackoverflow.com/a/28090544/4265352)をご覧ください。 – axiac
axiacとSagar Gangwalの両方に感謝します。似たような軸索に見えます。悪いと検索したときに表示されませんでした。 – Roggie