【问题标题】:How to retrieve the total count如何检索总计数
【发布时间】:2016-09-09 10:37:05
【问题描述】:

这是在 SQL Server 中运行的存储过程。我也想带出返回数据的总数。

ALTER PROCEDURE [dbo].[spManufacturerdata]
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT [t1].[OEMName] AS [oem], [t1].[OemId] AS [id]
FROM (
    SELECT DISTINCT [t0].[OEMName], [t0].[OemId]
    FROM [dbo].[tblOEM] AS [t0]
    WHERE [t0].[IsActive] = 1
    ) AS [t1]
order BY LOWER([t1].[OEMName])

END

提前致谢。

【问题讨论】:

  • 样本数据和期望的结果将有助于解释您想要做什么。我不确定“返回数据的总数”应该是什么意思。
  • 你不能简单地检查调用方的行数吗?

标签: sql-server stored-procedures sql-server-2008-r2


【解决方案1】:

添加分组方式

SELECT COUNT([t1].[OemId]) AS TotalCount,[t1].[OEMName] AS [oem], [t1].[OemId] AS [id]
FROM (
    SELECT DISTINCT [t0].[OEMName], [t0].[OemId]
    FROM [dbo].[tblOEM] AS [t0]
    WHERE [t0].[IsActive] = 1
    ) AS [t1]
GROUP BY [t1].[OEMName] , [t1].[OemId] 
order BY LOWER([t1].[OEMName])

【讨论】:

    【解决方案2】:

    我意识到 COUNT()COUNT(DISTINCT) 只会为每一行返回 1。

    如果你想要所有行的总数,那么你想要这样的东西:

    SELECT t.OEMName as oem, t.OemId as id,
           SUM(COUNT(*)) OVER () as total_rows,
           COUNT(*) OVER () as total_combinations
    FROM dbo.tblOEM t
    WHERE t.IsActive = 1
    GROUP BY t.OEMName, t.OemId
    ORDER BY LOWER(t.OEMName);
    

    【讨论】:

      【解决方案3】:

      我不确定我是否理解你。 如果要统计上一次选择返回的总记录数,只需要调用count()即可:

      SELECT COUNT([t1].[OEMName]) AS totalRowsInPreviuosQuery
      FROM (
          SELECT DISTINCT [t0].[OEMName], [t0].[OemId]
          FROM [dbo].[tblOEM] AS [t0]
          WHERE [t0].[IsActive] = 1
      ) AS [t1]
      

      【讨论】:

        【解决方案4】:

        试试这个,

        SELECT count(*) AS TotalCount
        FROM (
            SELECT DISTINCT [t0].[OEMName]
                ,[t0].[OemId]
            FROM [dbo].[tblOEM] AS [t0]
            WHERE [t0].[IsActive] = 1
            ) AS [t1]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-15
          • 2017-11-01
          • 2021-08-03
          • 2020-12-15
          相关资源
          最近更新 更多