【发布时间】:2020-02-21 22:13:11
【问题描述】:
我正在练习使用chinook 数据库。
我必须提供一个查询,显示 2009 年哪个销售代理的销售额最高。
我已经在 SQLite 中尝试过使用此代码:
SELECT Full_Name as Best_Salesman, Max(Total_per_Agent) as Maximum_Amount
FROM
(SELECT e.EmployeeId, e.FirstName|| ' '|| e.LastName as Full_Name,sum (i.total) AS Total_per_Agent
FROM customers c, invoices i, employees e
WHERE c.CustomerId=i.CustomerId
AND c.SupportRepId=e.EmployeeId
AND i.invoiceDate BETWEEN "2009-01-01" AND "2009-12-31"
GROUP BY c.SupportRepId)
数据库大小不够大,所以我真的可以使用我已经制作的代码。但是,我想找到一个更有效的解决方案,而不是使用“SELECT/FROM/SELECT”代码。在数据库大得多的情况下,会导致代码效率低下。
有什么帮助吗?
【问题讨论】:
-
我不知道 sql lite 是否支持 select top(1) {columns} 但这可能更有效。