Mysql 使用MAX()和GROUP BY返回的结果不正确

Mysql 使用MAX()和GROUP BY返回的结果不正确,mysql,greatest-n-per-group,Mysql,Greatest N Per Group,这是我的数据库 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 - '201

这是我的数据库

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_值(result),但得到了同样错误的结果

下面是我的示例数据库和SQLFIDLE代码的链接。

我的要求是获得最新条码号的行

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'
我不确定我的问题出在哪里。请告知
提前谢谢

SELECT test_data_main.* FROM test_data_main
INNER JOIN
(
  SELECT barcode_no,MAX(date_time) date_time
  FROM test_data_main 
  GROUP BY barcode_no
)Z ON Z.barcode_no=test_data_main.barcode_no AND Z.date_time=test_data_main.date_time
您可以尝试上面的代码


您可以在此处选中:

“我的要求是获取最新条形码的行号。”--您无法使用
分组方式从表中获取行<代码>分组依据
使用表中的数据计算新行。看一看a,谢谢axiac和Sagar Gangwal。似乎类似于axiac。糟糕的是,搜索时它没有显示出来。