簡體   English   中英

mysql,根據不同列的最大值選擇沒有重復的count

[英]mysql, select with no duplicates with count, based on maximum value of different column

我有桌子結構

|id|product_id|date|buyer_id|seler_id|

作為查詢的結果,我需要沒有重復,product_id具有最大日期並且對應於Buyer_id以及此product_id的買家數量

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

子查詢獲取每個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
        ) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM