我尝试按结果计算组中的行数。 我想统计锻炼的次数,其中肌肉是1 我的问题是计数忽略了组。Mysql计数忽略组
我想用这样的:
SELECT COUNT(id) FROM soFitTest.users_program
where user_name = 1127 AND muscle = 1
group by exercise;
在我的账,我得到3,但是当我运行查询没有这个数我只得到1行。
查看附件图片。
我尝试按结果计算组中的行数。 我想统计锻炼的次数,其中肌肉是1 我的问题是计数忽略了组。Mysql计数忽略组
我想用这样的:
SELECT COUNT(id) FROM soFitTest.users_program
where user_name = 1127 AND muscle = 1
group by exercise;
在我的账,我得到3,但是当我运行查询没有这个数我只得到1行。
查看附件图片。
如果你只是想计算行数,然后尝试,而不是在计数功能指定 “ID”, “COUNT(*)”。选择COUNT(*)FROM soFitTest.users_program其中user_name = 1127 AND肌肉= 1;其中,
希望这会有所帮助。
答案是:
SELECT COUNT(t1.id) FROM
(SELECT id FROM soFitTest.users_program
where user_name = 1127 AND muscle = 1 group by exercise) t1;
从图像中第一个查询根据SQL标准是无效的:
SELECT *
FROM soFitTest.users_program
WHERE user_name = 1127 AND muscle = 1
GROUP BY exercise
它发生的MySQL接受它并产生一个结果,但该值也退货不确定。它在文档页面中有关于how MYSQL handles GROUP BY
的解释。
如果表中的行在物理存储上以不同的顺序存储,则相同的查询可能会产生不同的结果。
您应该运行:
SELECT *
FROM soFitTest.users_program
WHERE user_name = 1127 AND muscle = 1
即不GROUP BY
,看看行符合条件的,由GROUP BY
是总前。
然后,当你添加GROUP BY
条款,只放了SELECT
子句中:出现的GROUP BY
子句中
exercise
例如;GROUP BY
aggregate functions - 它们将来自组中所有行的值合并为一个值;例如,COUNT(*)
会计算每个组中的行数;GROUP BY
子句中的列的列;用普通英语表示如果exercise
是表users_program
的PK
那么您可以使用该表的任何其他列,因为它的值由列exercise
的值确定;但是这只有在exercise
是PK
(这可能不是这种情况)。总之,你可能想查询的是:
SELECT exercise, COUNT(*)
FROM soFitTest.users_program
WHERE user_name = 1127 AND muscle = 1
GROUP BY exercise
它过滤有user_name = 1127 AND muscle = 1
然后进行群体从他们的行。每个组包含列exercise
中具有相同值的所有行。从每个组生成一行到返回的结果集中。的行中包含exercise
列的值(这是该组中的所有行的相同)和行的组(COUNT(*)
)中的号码。
如果你想获得exercices的数量,您的查询是正确的:
SELECT COUNT(1) FROM soFitTest.users_program where user_name = 1127 AND muscle = 1;
(COUNT(1)给出了相同的结果,COUNT(*),但不尝试检索数据库中的所有领域 - 它的效率更高)
如果你需要得到这些条件的所有行,你必须跳过GROUP BY:
SELECT * FROM soFitTest.users_program where user_name = 1127 AND muscle = 1
'COUNT(*)'返回行数。它不检查在这些行中找到的值,它不关心“NULL”(或者字段是“NOT NULL”)。这与COUNT(1)' – axiac 2015-02-23 11:23:02
相同这就是我的意思:) – 2015-02-23 20:24:58
你是什么架构'soFitTest.users_program' – Vihar 2015-02-23 10:58:04
为什么你会组结果时你没有使用它的任何功能,甚至没有选择? – SMA 2015-02-23 10:59:51
我想统计那里的肌肉数量为1 – dasdasd 2015-02-23 11:02:20