mysql,根据不同列的最大值选择没有重复的count

时间:2013-09-24 14:26:56

标签: mysql select count duplicates max

我有暂停表结构

|id|product_id|date|buyer_id|seler_id|

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

子查询获取每个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
        )