繁体   English   中英

内部连接以获取具有最大列值的行

[英]inner join to get row with max column value

我一直在尝试获取列值为最大值的行的值。 但它在某种程度上不起作用。 请帮帮忙。

让我解释一下问题

表 1 名称 = 代理列代理 ID、代理名称

表 2 名称 = 客户列 client_name、total_bill、agency_id

我想要得到的是 total_bill 值最大的行的客户名称、代理名称和 total_bill。

这是我正在使用的查询

SELECT a.agency_name 
FROM agency a 
INNER JOIN (SELECT agency_id, client_name, MAX(total_bill) total_bill FROM client GROUP BY agency_id ) c 
ON a.agency_id = c.agency_id;

你能告诉我我哪里出了问题吗?

我收到此错误 -

Expression #2 of SELECT list is not in GROUP BY clause and contains 
nonaggregated column 'agency-app.client.client_name' which is not 
functionally dependent on columns in GROUP BY clause; this is incompatible
with sql_mode=only_full_group_by

请让我知道如何解决这个问题。

如果您想要整体顶级客户,您可以加入,订购和限制:

select 
    a.agency_name,
    c.client_name,
    c.total_bill
from agencies a
inner join clients c on c.agency_id = a.agency_id
order by c.total_bill desc
limit 1

试试这个查询:

SELECT client.name, agency.name, client.total_bill
FROM agency, client 
WHERE agency.agency_id=client.agency_id 
AND client.total_bill=(SELECT MAX(total_bill) FROM client)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM