MySql两个子请求计数调用
大家好,我有这个代码的问题:MySql两个子请求计数调用,mysql,count,Mysql,Count,大家好,我有这个代码的问题: SELECT (SELECT count( * ) FROM _mark_as WHERE value =2) AS bad, (SELECT count( * ) FROM _mark_as WHERE value =1) AS good FROM `_mark_as` 它所做的是计算所有“好”和“坏”值,但它调用了_mark_as中的每个条目,这是不对的。我想打一个电话,返回一个条目: # good # bad # ############## #
SELECT
(SELECT count( * ) FROM _mark_as WHERE value =2) AS bad,
(SELECT count( * ) FROM _mark_as WHERE value =1) AS good
FROM `_mark_as`
它所做的是计算所有“好”和“坏”值,但它调用了_mark_as中的每个条目,这是不对的。我想打一个电话,返回一个条目:
# good # bad #
##############
# 2 # 2 #
##############
请帮忙
附言:分组不是出路。因为首先将完成选择(对于所有条目),然后才应用到分组中。听起来不错,但count()和sum()之间的调用时间是否有差异?答案是正确的,我不能在接下来的5分钟内“接受”,只是问一下你们的共同想法。:)除非你的桌子超过1000万行(大行),否则我不会担心的
SELECT
Sum(CASE WHEN value = 2 THEN 1 ELSE 0 END) as bad,
Sum(CASE WHEN value = 1 THEN 1 ELSE 0 END) as good
FROM _mark_as