MySQL如何从GROUP BY中计数

标签 mysql

date    | userid | companyid  
12.8.14 |   1    |    1  
12.8.14 |   2    |    2  
12.8.14 |   3    |    1

我有一张像上面这样的 table 。通过正常查询,很容易从表中统计出有多少家公司1

我的问题是:如果我的查询是select * from table where companyid = '1' group by date,我怎样才能让公司的mysql_num_row等于21userid13

select * from table where companyid = '1' group by date 只会返回我 mysql_num_row 等于 1 且结果 12.8.14 | 1 | 1

最佳答案

您可以嵌套查询来获取第一家公司条目的总和,然后将该嵌套查询连接到外部查询:

SELECT ABB2.*, ABB1.mysql_num_row
FROM `table` AS ABB2
  JOIN 
      (SELECT companyid, COUNT(userid) AS mysql_num_row
      FROM `table`
      GROUP BY companyid) AS ABB1 ON ABB1.companyid = ABB2.companyid
WHERE ABB2.companyid = 1;

Example

关于MySQL如何从GROUP BY中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25439456/

相关文章:

php - 尝试使用php创建表时出错

mysql - 来自已知点查询的 SQL 位置

mysql - 在将文本导入 MySql 之前对其进行验证和格式化

php - 如何在php中通过metakeywords显示相关项目

mysql - wercker.com 连接到 MySQL 数据库

SQL/MySQL 结构(非规范化或保持关系)

php - 时区函数帮助

mysql - 是否可以禁用mysql子查询?

mysql - 一个纬度/经度坐标与使用 SQL 的固定坐标之间的近似距离

php - php日期格式问题