[英]How to get Lowest value of each group in mysql
I want to get lowest value of each group from two table 我想从两个表中获得每个组的最小值
Table Are Below 表格如下
Table 1 Table 2
| GPN | Amt | | GPN | Date |
| A | 10 | | A | 2016-09-10 |
| A | 15 | | A | 2016-09-18 |
| A | 20 | | B | 2016-09-10 |
| A | 25 | | B | 2016-09-11 |
| A | 30 | | B | 2016-09-12 |
| B | 20 | | C | 2016-10-12 |
| B | 40 | | C | 2016-10-13 |
| B | 60 | | C | 2016-10-14 |
| B | 80 | | D | 2016-09-10 |
| B | 100 | | D | 2016-10-13 |
| C | 3 |
| C | 6 |
| C | 9 |
| C | 12 |
| C | 15 |
| D | 7 |
| D | 10 |
| D | 13 |
| D | 16 |
| D | 19 |
| D | 22 |
How i want that value 我如何想要这个价值
For Example 例如
Date = 2016-09-10, 日期= 2016-09-10,
On That how many GPN are there so i have to get every GPN's Lowest Amt 关于那有多少个GPN,所以我必须获得每个GPN的最低金额
So Result Will be like this 所以结果会像这样
Result
| GPN | Amt |
| A | 10 |
| B | 20 |
| D | 7 |
I have tried by using ASC LIMIT 1 so obviously it will show only one raw but but i have no idea how to do that. 我已经尝试过使用ASC LIMIT 1,因此很明显它将仅显示一个原始数据,但是我不知道该怎么做。
and i did it with php loop but i am looking if it is possible in mysql query so that will awesome. 而且我用php循环做到了,但是我正在寻找是否有可能在mysql查询中这样做,这将很棒。
Inner join and group by 内部加入并分组
select table1.GPN, min(table2.Amt)
from table1
inner join table2 on table1.GPN= table2.GPN
where date(table2.date ) = str_to_date('2016-09-10', '%Y-%m-%d')
group by table1.GPN
这是一个经典的聚合函数查询。
SELECT T1.GPN, MIN(Amt) FROM Table1 T1 INNER JOIN Table2 T2 ON T1.GPN = T2.GPN GROUP BY T1.GPN WHERE T2.Date = ?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.