首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL Count all和Count distinct超过2列相同的查询

MySQL Count all和Count distinct超过2列相同的查询
EN

Stack Overflow用户
提问于 2015-02-04 09:14:55
回答 3查看 146关注 0票数 1

目前,我使用下面的查询来计算购买某项商品的不同(客户用户名和商店id)的行数。如何计算同一查询中item_id =3的总(所有)行?

代码语言:javascript
复制
SELECT count(*)
FROM (
SELECT DISTINCT customer_username, store_id
FROM transactions
WHERE item_id = 3)
EN

回答 3

Stack Overflow用户

发布于 2015-02-04 09:20:37

您可以尝试如下所示:

代码语言:javascript
复制
SELECT COUNT(*), SUM(customer_cnt) FROM (
    SELECT customer_username, store_id, COUNT(*) AS customer_cnt
      FROM transactions
     WHERE item_id = 3
     GROUP BY customer_username, store_id
) t;
票数 1
EN

Stack Overflow用户

发布于 2015-02-04 09:21:13

尝试删除查询中的DISTINCT:

代码语言:javascript
复制
SELECT count(*)
FROM (
SELECT customer_username, store_id
FROM transactions
WHERE item_id = 3)
票数 0
EN

Stack Overflow用户

发布于 2015-02-04 09:49:27

另一种方式是两个内联视图的cross join

代码语言:javascript
复制
select x.distinct_rows, y.total_rows
  from (select count(distinct concat(user_name, store_id)) as distinct_rows
          from transactions
         where item_id = 3) x
 cross join (select count(*) as total_rows
               from transactions
              where item_id = 3) y
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28311822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档