SELECT COUNT with Group BY 仅返回值为 2

Posted

技术标签:

【中文标题】SELECT COUNT with Group BY 仅返回值为 2【英文标题】:SELECT COUNT with Group BY only return value of 2 【发布时间】:2021-08-06 08:34:55 【问题描述】:

我有 6 条记录,其中 3 条具有相同的学校,我想得到计算我的数据库中有多少学校的结果,但它只返回 2 的值

$tblnum1 = "SELECT COUNT(*) AS ttldata FROM engoralgrade3 WHERE Years = '$yrr' GROUP BY School";
$tblnum = mysqli_query($conn, $tblnum1);
$tblnm = mysqli_fetch_array($tblnum);

echo $tblnm['ttldata'];//input should be 3

This what my data base looked like

【问题讨论】:

【参考方案1】:

我查过你的桌子,每所学校都有两排。 也许你想计算有多少不同的学校,所以将 sql 更改为:

select count(distinct School )from engoralgrade3

或者你想区分学校名称,试试:

select distinct School from engoralgrade3

【讨论】:

【参考方案2】:

你可以试试这个查询,它会起作用的

$tblnum1 = "SELECT * FROM engoralgrade3 WHERE Years = '$yrr' GROUP BY School";
$tblnum = mysqli_query($conn, $tblnum1);
$tblnm = mysqli_num_rows($tblnum);

echo $tblnm ;

可能是数据库中所有六条记录的 var $yrr 不相同,导致返回值是 2 而不是 3。

【讨论】:

以上是关于SELECT COUNT with Group BY 仅返回值为 2的主要内容,如果未能解决你的问题,请参考以下文章

LINQ-Entities Group By With Range 变量查询

MySQL 8嵌套select with count

帮我解释下:所有select的字段,除聚合函数中的字段,都必须在group by中出现。只要满足这个规则就可以

group by...having count()的问题

获取“COUNT”/“GROUP BY”MySQL查询的空结果

如何在同一个 select 语句中使用 count 和 group by