Sql countif和sumif每行不分组
我正在尝试使用SQL计算sumif和countif 以下是要开始的代码: 选择Sql countif和sumif每行不分组,sql,sum,countif,Sql,Sum,Countif,我正在尝试使用SQL计算sumif和countif 以下是要开始的代码: 选择 项目ID 供应商 ,成本 ,售价 从countifExpirement开始 我正在尝试创建以下输出: 前四列已经有数据,我正在尝试创建计算字段来计算重复项目、每个供应商的项目和供应商的成本。 易于在excel中创建。使用分组方法的示例很多,但我需要每一行都显示出来。在标准SQL中,您可以使用分析函数来实现这一点。但是,它们并不是在每个DBMS中都可用 select itemid, supplier, cost
项目ID 供应商 ,成本 ,售价 从countifExpirement开始 我正在尝试创建以下输出: 前四列已经有数据,我正在尝试创建计算字段来计算重复项目、每个供应商的项目和供应商的成本。
易于在excel中创建。使用分组方法的示例很多,但我需要每一行都显示出来。在标准SQL中,您可以使用分析函数来实现这一点。但是,它们并不是在每个DBMS中都可用
select
itemid, supplier, cost, saleprice,
count(*) over (partition by itemid) as count_itemid,
count(*) over (partition by supplier) as count_supplier,
sum(cost) over (partition by supplier) as cost_suppler
from countifexpirement;
以下与sub select相同,适用于每个DBMS:
select
itemid, supplier, cost, saleprice,
(
select count(*)
from countifexpirement x
where x.itemid = countifexpirement.itemid
) as count_itemid,
(
select count(*)
from countifexpirement x
where x.supplier = countifexpirement.supplier
) as count_supplier,
(
select sum(cost)
from countifexpirement x
where x.supplier = countifexpirement.supplier
) as cost_suppler
from countifexpirement;
你能举例说明你的预期结果是什么吗?你能分享一下你的表的定义吗?哪些数据库管理系统?如何获取count_ItemID?例如,为什么第一个itemID 10014的计数为2,而下一个10014的计数为3?只是固定了计数列。它应该是正确的results@Giorgi纳库里:是的,count_itemid的请求不清楚,这就是为什么我在评论部分要求解释。我假设结果图像中的输入错误和count_itemid应该只是按itemid统计记录,就像count_supplier按supplier统计记录一样。Op已经纠正了这个问题,所以这个答案似乎是正确的。