[英]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.