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 变量查询
帮我解释下:所有select的字段,除聚合函数中的字段,都必须在group by中出现。只要满足这个规则就可以