【问题标题】:Return count along with result set返回计数和结果集
【发布时间】:2013-01-29 22:15:00
【问题描述】:

我想要一列的唯一计数以及结果集。例如,如果结果集是这样的

              ID      Name
               2       A
               2       B
               4       C
               5       D
               1       A
               1       B

我想从数据库返回:

             Count  ID   Name
              4      2    A
              4      2    B
              4      4    C
              4      5    D
              4      1    A
              4      1    B

您可以清楚地看到 4 是 ID 列的唯一计数。

【问题讨论】:

  • 您希望将 ID 字段中的唯一值选为包含所有行的另一列?
  • @all 。以上是结果集而不是表格。我通过加入多个表得到这个。我需要唯一的 ID 计数,以便我知道我得到了多少个唯一值。我目前正在使用另一个 SP 来仅计算该值。我想删除该 SP 并计入同一个 SP。

标签: mysql sql sql-server sql-server-2008 oracle11g


【解决方案1】:

对于 MySQL 和 SQL Server,您可以在相关子查询中执行此操作,如下所示:

SELECT
  (SELECT COUNT(DISTINCT Name)
   FROM tablename) AS 'Count',
  ID,
  Name
FROM tablename;

MySQL Fiddle Demo.

SQL Server Fiddle Demo.

【讨论】:

    【解决方案2】:

    这几乎适用于所有 RDBMS。

    SELECT  b.totalCount, a.ID, a.name 
    FROM    tableName a 
            CROSS JOIN 
            (SELECT COUNT(DISTINCT Name) totalCount 
             FROM tableName) b
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      相关资源
      最近更新 更多