如何仅从 Total 中获取每个 stand_id 的 MAX 值
Posted
技术标签:
【中文标题】如何仅从 Total 中获取每个 stand_id 的 MAX 值【英文标题】:How to get only the MAX Value from Total for each stand_id 【发布时间】:2020-10-02 02:23:56 【问题描述】:我有这样的桌子
该表是我从这个查询中得到的
select transaksi.stand_id,menu.nama_minuman, sum(detail_transaksi.qty) as Total from detail_transaksi
join menu ON menu.menu_id = detail_transaksi.menu_id
JOIN transaksi ON transaksi.transaksi_id = detail_transaksi.transaksi_id
GROUP BY transaksi.stand_id,menu.menu_id
我想要的结果只是每个 stand_id 的 Total 中的 MAX 值
类似的东西
希望有人能帮帮我
【问题讨论】:
menu(menu_id(PK),jenismenu_id,nama_minuman,harga) transaksi(transaksi_id(PK),stand_id,employee_id,tanggal) detail_transaksi(transaksi_id,menu_id,qty,harga,sub_total) 这是表格结构 hm 一个子查询,比如“select sum(detail_transaksi.qty) as total”,在主查询中你从 total 中选择最大值? 如果您愿意为所有相关表提供示例数据,那将非常容易,这样我们就不必回溯您对表名的查询。如果您甚至可以导出并在编辑器中打开文件,以便我们可以将其复制粘贴到工作台中并拥有完全相同的数据,而无需手动构建环境,那将是梦想。 感谢您的帮助,但我的问题已经解决了。我很欣赏它 【参考方案1】:我尽量不给你完整的解决方案,但让你自己想办法。考虑以下代码:
create table test (stand_id int, nama_minuman varchar(20), total int);
insert into test values (1, 'aaa', 2);
insert into test values (1, 'bbb', 3);
insert into test values (2, 'ccc', 1);
select *
from test
where (stand_id, total) in (
select stand_id, max(total) max_total
from test
group by stand_id
);
注意:这是解决问题的众多方法之一。
注意 2:当每个 stand_id 有多个 max(total) 时,看看会发生什么。
【讨论】:
以上是关于如何仅从 Total 中获取每个 stand_id 的 MAX 值的主要内容,如果未能解决你的问题,请参考以下文章