如何仅从 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 值的主要内容,如果未能解决你的问题,请参考以下文章

如何仅从系列或列表中获取特定值[关闭]

聚合 SQL 函数以仅从每个组中获取第一个

仅从 CoreDate 或所有内容中获取所需的数据?

如何仅从 ResultSet 中获取第一行

如何仅从 JSON 数据中获取最后 10 个对象

如何仅从 laravel FormRequest 中获取经过验证的数据?