【问题标题】:mysql, select with no duplicates with count, based on maximum value of different columnmysql,根据不同列的最大值选择不重复的计数
【发布时间】:2013-09-29 19:57:34
【问题描述】:

我有休闲表结构

|id|product_id|date|buyer_id|seler_id|

作为查询的结果,我需要 不重复,product_id 具有最大日期并与其对应的 buy_id 以及此 product_id 的买家数量

【问题讨论】:

    标签: mysql select count duplicates max


    【解决方案1】:
    select t.*
    from your_table t
    inner join
    (
       select product_id, max(date) as mdate
       from your_table
       group by product_id 
    ) x on x.product_id = t.product_id and x.mdate = t.date
    

    【讨论】:

      【解决方案2】:

      子查询获取每个product_id 的最新日期。要获取其他列,您需要在两个条件下加入表本身的子查询,即它与 product_iddate 匹配。

      SELECT  a.*
      FROM    tableName a
              INNER JOIN
              (
                  SELECT  product_id, MAX(date) date
                  FROM    tableName
                  GROUP   BY product_id
              ) b ON a.product_id = b.product_id AND
                      a.date = b.date
      

      这也可以使用相关子查询来完成,

      SELECT  a.*
      FROM    tableName a
      WHERE   a.date = 
              (
                  SELECT  MAX(date) date
                  FROM    tableName b
                  WHERE   a.product_id = b.product_id
              ) 
      

      【讨论】:

      • 感谢您的快速回复,但我已经弄清楚如何与最后一个买家获得不同的 product_id,问题是我还需要知道有多少买家购买了此产品
      猜你喜欢
      • 1970-01-01
      • 2016-09-08
      • 1970-01-01
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多