【问题标题】:SELECT statement to get latest rowSELECT 语句获取最新行
【发布时间】:2012-05-15 08:59:54
【问题描述】:

我被指派在一个网站上做进一步的开发,目前,该网站是便利店经理监控“本周杂货袋”中包含哪些商品的网站。这位前开发人员的工作非常草率,所以每当经理们想:“该死!我需要编辑这篇文章,因为我刚刚输入了错误的值”。他们必须输入同名的新文章,然后他们有两篇同名但价格不同的文章和 DATE_TIME(输入文章的日期和时间)。数据库看起来像这样:

________________________________________________
|___itemId___|___price___|______date_time______|
|     1      |    2.30   | 2012-01-01 00:00:00 |
|     2      |    1.50   | 2012-01-01 00:00:00 |
|     3      |    5.99   | 2012-01-01 00:00:00 |
|     4      |    0.99   | 2012-01-01 00:00:00 |
|     4      |    2.00   | 2012-01-01 00:10:00 |
|     4      |    4.99   | 2012-01-01 00:20:00 |
|     5      |   10.00   | 2012-01-01 00:00:00 |
|     6      |   39.99   | 2012-01-01 00:00:00 |

我正在处理这个 SELECT itemId, price, MAX(date_time) FROM myTable 以获取每个项目的最新行,如下所示:

________________________________________________
|___itemId___|___price___|______date_time______|
|     1      |    2.30   | 2012-01-01 00:00:00 |
|     2      |    1.50   | 2012-01-01 00:00:00 |
|     3      |    5.99   | 2012-01-01 00:00:00 |
|     4      |    4.99   | 2012-01-01 00:20:00 |
|     5      |   10.00   | 2012-01-01 00:00:00 |
|     6      |   39.99   | 2012-01-01 00:00:00 |

但我得到的只是:

________________________________________________
|___itemId___|___price___|______date_time______|
|     4      |    4.99   | 2012-01-01 00:20:00 |

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: mysql datetime group-by


    【解决方案1】:

    添加GROUP BY 子句:

    SELECT itemId, price, MAX(date_time)
    FROM myTable 
    GROUP BY itemId
    

    【讨论】:

      【解决方案2】:

      尝试使用group bydistinct

      【讨论】:

        【解决方案3】:
        SELECT t0.itemId, 
               t0.price, 
               t0.date_time 
        FROM   myTable AS t0 
               LEFT JOIN myTable AS t1 
                 ON t0.itemId = t1.itemId 
                    AND t1.date_time > t0.date_time 
        WHERE  t1.itemId IS NULL; 
        

        【讨论】:

          猜你喜欢
          • 2013-10-06
          • 1970-01-01
          • 2011-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-04
          • 1970-01-01
          相关资源
          最近更新 更多