Select min Rows in mysql Group by userid

سلام . روز بخیر. فرض کنید هر مشتری مبالغ مختلفی خرید داشته است در دیتابیس userid را به همراه مبالغ مختلف خرید او ذخیره کرده ایم حالا میخواهیم کمترین خرید هر مشتری را بدست آوریم

CREATE TABLE `order` (
  `id` int(11) NOT NULL,
  `userid` int(11) NOT NULL,
  `price` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 
INSERT INTO `order` (`id`, `userid`, `price`) VALUES
(3, 1, 100),
(4, 1, 200),
(5, 3, 100),
(6, 3, 600);

حالا فرض کنید کاربر شماره 1 و 3 هر دو 2 خرید داشته اند ما میخواهیم هر کاربر تفکیک شود و کمترین خرید را برای او نمایش دهد

 SELECT  a.id,a.userid,price FROM `order` a

INNER JOIN
(
    SELECT  t.userid  , MIN(t.price) AS miin
    FROM   `order` t 
    GROUP BY userid
) b ON b.miin = a.price and b.userid = a.userid

 

نتیجه

id —|—userid—-|—price

3     |     1        |     100

5     |     3        |     100

 https://sqlfiddle.com/#!9/c9bad/2

 

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.