【问题标题】:How to add a count column to an SQL query?如何在 SQL 查询中添加计数列?
【发布时间】:2019-09-20 09:23:07
【问题描述】:

我正在查询我公司的订单表。我想添加一个列来计算我正在查询的整个表的唯一“userId”。我的代码需要是什么样的?

我尝试过 count distinct 并将 userId 计数为 'num' ,但这并没有返回所需的结果。

这不起作用: '''选择 计数(用户 ID)作为“数字” 来自 [表格] 通过...分组 用户身份 限制 1000 '''

我希望这些行看起来像“用户 ID,总订单数”,其中总订单数是用户 ID 数量的函数。

【问题讨论】:

    标签: sql analytics


    【解决方案1】:

    你不想要GROUP BY。您需要以下列之一:

    SELECT COUNT(userId), COUNT(DISTINCT userId)
    FROM [table];
    

    【讨论】:

    • 知道了,但现在我的计数列只返回 1。我想知道在整个表中出现了多少个 userId 实例,并且在行中有这个数字。目前我的代码看起来像:SELECT userId, marketId, COUNT(DISTINCT userId) FROM [good-uncle-bigquery-data:GoodUncleProductionDataset1.orders] GROUP BY userId, marketId 并返回:userId, marketId, 1 我想要的地方:userId, marketId, sumOfUserId
    • @DylanGans 。 . .我的回答中没有看到GROUP BY
    • 如果我不使用 GROUP BY 我会收到此错误,“(L2:12): (L2:46): SELECT 子句混合了聚合 'f0_' 和字段 'userId, marketId ' 没有 GROUP BY 子句"
    • @DylanGans 。 . .我在查询中没有看到这样的列。
    【解决方案2】:

    如果您对 userId 和 GROUP BY userId 进行计数,您将获得每个唯一的 userId 以及该 userId 有记录的次数。

    SELECT COUNT(userId), userId FROM table GROUP BY userId
    

    请参阅此 SQL Fiddle 以获取示例 http://sqlfiddle.com/#!9/09408/786

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多