Php 按计算不正确分组
我有以下声明:Php 按计算不正确分组,php,mysql,Php,Mysql,我有以下声明: SELECT COUNT(ID) AS numberVote, AWARD_ID, NOMINEE_ID, VOTER_ID, MULTI_CODE FROM b_awards_vote WHERE AWARD_ID = 8 GROUP BY MULTI_CODE 我的桌子看起来像这样: ID | AWARD_ID | NOMINEE_ID | VOTER_ID | MUTLI_CODE 1 | 8 | 3 | 1
SELECT COUNT(ID) AS numberVote, AWARD_ID, NOMINEE_ID, VOTER_ID, MULTI_CODE
FROM b_awards_vote
WHERE AWARD_ID = 8
GROUP BY MULTI_CODE
我的桌子看起来像这样:
ID | AWARD_ID | NOMINEE_ID | VOTER_ID | MUTLI_CODE
1 | 8 | 3 | 1 | 4837
2 | 8 | 4 | 1 | 4837
3 | 8 | 5 | 1 | 4837
但是,在php中:
$numberVote = $row['numberVote'];
此语句返回3。以下是我想要的更多细节:
ID | AWARD_ID | NOMINEE_ID | VOTER_ID | MUTLI_CODE
1 | 8 | 3 | 1 | 4837
2 | 8 | 4 | 1 | 4837
3 | 8 | 5 | 1 | 4837
4 | 8 | 4 | 3 | 7480
5 | 8 | 5 | 3 | 7480
此查询将统计您拥有的
MUTLI\u code
组的数量:
SELECT COUNT( distinct MULTI_CODE) AS NumOfGroups ,ID AS numberVote, AWARD_ID, NOMINEE_ID, VOTER_ID, MULTI_CODE
FROM b_awards_vote
WHERE AWARD_ID = 8
请参见参考为什么使用count(ID)并提供用于显示此数据的php代码,因为您仅使用MULTI_代码字段进行分组,虽然被提名者ID字段有不同的值。不太清楚您想要或期望的输出返回3,因为您是按
MUTLI_-code
分组的,在您的示例中,当相同的MUTLI_-code
时有3行。抱歉,我对其进行了一些编辑。我想将MULTI_代码分组为1票。一般来说,如果在SELECT中有一个未聚合的列,那么该列也应该出现在group BY中。同样,如果在“选择”中有聚合列,则该列不应出现在“分组依据”中!