哪种商店类型按销售额金额和所售数量销售最多的商品

时间:2019-08-23 16:36:29

标签: sql sql-server

我只能使用单个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)

3 个答案:

答案 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分组