我只能使用单个SELECT语句。不允许使用多个选择语句。
我有一个名为“ Transactions”的表,该表具有以下变量:
例如,如果订购的数量为5,每件产品的价格为100,则total_amt携带500。
现在,我必须找到按销售金额和所售数量销售最多商品的商店类型。我必须使用Have子句中的子查询来做到这一点。
我已经在SQL Server中编写了以下代码,但是它没有给我任何输出,并且引发错误:Transactions.total_amt应该包含在haveing子句或聚合函数中。在group by中使用total_amt时,输出中没有任何结果。
下面是我编写的查询:
select store_type, MAX(total_amt), MAX(Qty)
from Transactions
group by Store_type
Having total_amt = (select SUM(total_amt) from Transactions group by Store_type)
AND
Qty = (select SUM(Qty) from Transactions group by Store_type)
答案 0 :(得分:0)
一种简单的方法是基于最大订购量和限制
select store_type, MAX(total_amt), MAX(Qty)
from Transactions
group by Store_type
ORDER BY MAX(total_amt) DESC, MAX(Qty) DESC
LIMIT 1
答案 1 :(得分:0)
同时检查查询结果并确定商店类型明智的总amt和最大总amt是否与数量匹配。
如果只想匹配,则可以创建2个子查询表并使用内部联接。
我希望这能解决。
select
Store_type,
SUM(total_amt) AS Total_total_amt,
SUM(Qty) AS Total_Qty
from Transactions
group by Store_type
select
store_type,
MAX(total_amt) AS max_total_amt,
MAX(Qty) AS max_Qty
from Transactions
group by Store_type
答案 2 :(得分:0)
您可以使用如下所示的查询
;使用cte作为 ( 选择sum(qty)作为sum_quantity,sum(sales)作为sum_sales,store_type 从交易 按store_type分组 )
从CTE中选择Max(sum_quantity),max(sum_sales),store_type 按store_type分组