SQL Server查询中的计数百分比
我有一个SQL查询,其中最重要的功能是返回总销售额SQL Server查询中的计数百分比,sql,sql-server,database,Sql,Sql Server,Database,我有一个SQL查询,其中最重要的功能是返回总销售额SUM(gop.quantity)。然后我想让它显示这个数字的百分比。如果查询返回以下3行,则应在其旁边显示百分比-如下所示: 单位损失:2-百分比:20% 单位损失:4-百分比:40% 单位损失:6-百分比:60% 查询: SELECT TOP 20 p.productid, SUM(gop.quantity) AS unitsSold, SUM(gop.price * gop.quantity) AS gro
SUM(gop.quantity)
。然后我想让它显示这个数字的百分比。如果查询返回以下3行,则应在其旁边显示百分比-如下所示:
- 单位损失:2-百分比:20%
- 单位损失:4-百分比:40%
- 单位损失:6-百分比:60%
SELECT TOP 20
p.productid,
SUM(gop.quantity) AS unitsSold,
SUM(gop.price * gop.quantity) AS grossSales,
p.productName, gop.picid, gop.picUrl
FROM
product AS p
LEFT JOIN
orderdetail AS gop ON gop.productid = p.productId
LEFT JOIN
Orders AS hedgo ON hedgo.orderid = gop.orderid
WHERE
EXISTS (SELECT * FROM orderdetail AS op
WHERE op.orderid = hedgo.orderid)
GROUP BY
p.productid, p.productName, gop.picid, gop.picUrl
ORDER BY
unitsSold DESC
如何在我的SQL查询中实现这一点?您可以使用sum()
来获取总数:
select top 20 p.productid
, SUM(gop.quantity) as unitsSold
, SUM(gop.quantity+.0) / sum(SUM(gop.quantity)) over() as Percentage
, SUM(gop.price * gop.quantity) as grossSales
, p.productName
, gop.picid
, gop.picUrl
from product as p
left join orderdetail as gop
on gop.productid = p.productId
left join Orders as hedgo
on hedgo.orderid = gop.orderid
where exists (
select *
from orderdetail as op
where op.orderid = hedgo.orderid
)
group by p.productid
, p.productName
, gop.picid
, gop.picUrl
order by unitsSold desc
我将+.0
添加到和(gop.quantity)
中,这样,如果数量
是整数
,则除法操作将返回一个十进制
,而不是整数 您可以将sum()
与一起使用以获取总数:
select top 20 p.productid
, SUM(gop.quantity) as unitsSold
, SUM(gop.quantity+.0) / sum(SUM(gop.quantity)) over() as Percentage
, SUM(gop.price * gop.quantity) as grossSales
, p.productName
, gop.picid
, gop.picUrl
from product as p
left join orderdetail as gop
on gop.productid = p.productId
left join Orders as hedgo
on hedgo.orderid = gop.orderid
where exists (
select *
from orderdetail as op
where op.orderid = hedgo.orderid
)
group by p.productid
, p.productName
, gop.picid
, gop.picUrl
order by unitsSold desc
我将+.0
添加到和(gop.quantity)
中,这样,如果数量
是整数
,则除法操作将返回一个十进制
,而不是整数 你的百分比公式是什么?unitsSold/totalUnitsSold?是的,这是公式你的百分比公式是什么?unitsSold/totalUnitsSold?是的,这是公式