如何在新列中显示一列结果的计数值?

How do I display the count value of the results from one column in a new column?

这个存储过程returns有两个值但是它重复了多次。

我正在尝试获取 PLTGRN 的计数值,以便它显示在新列中,如下图所示:

我的代码:

ALTER PROCEDURE[dbo].[GreenTire_Fits_In_Press]
    @Press varchar(10)
AS
BEGIN
    SELECT FAC,PLTGRN
    FROM [TireTrack].[dbo].[cos_work] cosw WITH (nolock)
    INNER JOIN [DataWarehouse].[dbo].[v_Curing_Tooling] CURE WITH (Nolock) ON Cure.MLDNBR = Cosw.MOLD
    WHERE Cosw.FAC = @Press
END

我尝试将 select 语句中的 COUNT(PLTGRN) 添加到上面的代码中,但这会引发此错误:

-- 您缺少分组依据和获取计数的查询部分

ALTER PROCEDURE[dbo].[GreenTire_Fits_In_Press]
@Press varchar(10)
AS
BEGIN
Select FAC,PLTGRN, count(*)
FROM [TireTrack].[dbo].[cos_work] cosw with (nolock)
Inner Join [DataWarehouse].[dbo].[v_Curing_Tooling] CURE with (Nolock)
On Cure.MLDNBR=Cosw.MOLD
Where Cosw.FAC=@Press
Group By FAC,PLTGRN
End

SUMGROUP BY 子句一起使用。聚合函数汇总了 table 数据。将行分成几组后,应用聚合函数以便 return 每组只有一个值。最好通过在查询结果中包含 GROUP BY 子句来标识每个汇总行。

ALTER PROCEDURE[dbo].[GreenTire_Fits_In_Press]
    @Press varchar(10)
AS
BEGIN
    SELECT FAC,PLTGRN, COUNT(PLTGRN)
    FROM [TireTrack].[dbo].[cos_work] cosw WITH (nolock)
    INNER JOIN [DataWarehouse].[dbo].[v_Curing_Tooling] CURE WITH (Nolock) ON Cure.MLDNBR = Cosw.MOLD
    WHERE Cosw.FAC = @Press
    GROUP BY FAC, PLTGRN
END

你需要使用 GROUP BY :

ALTER PROCEDURE[dbo].[GreenTire_Fits_In_Press]
@Press varchar(10)
AS
BEGIN
Select PLTGRN , COUNT(*) QTY
FROM [TireTrack].[dbo].[cos_work] cosw with (nolock)
Inner Join [DataWarehouse].[dbo].[v_Curing_Tooling] CURE with (Nolock)
On Cure.MLDNBR=Cosw.MOLD
Where Cosw.FAC=@Press
GROUP BY PLTGRN
End