mysql - 计算mysql中的行数一次分组
问题描述
如果格式错误,第一次用户非常抱歉。不知道如何完全使用这个网站。
我正在使用 php 和 MySQL。
在我的桌子上,我有客户的姓名、地址、电子邮件、他们需要的服务和总价
我希望能够计算每项服务有多少报价,按电子邮件地址分组。
因此,例如,如果 jack@john 获得 3 个“烤箱清洁”报价,然后 1 个“地毯清洁”报价,则计数将显示为 2。此时我的脚本只是选择电子邮件地址作为唯一值,而不是将这两项服务分开是不好的,因为它会丢弃统计数据。
下面是我的表 QUOTES
Email address service total
jack@john 123 fake street oven cleaning £100
jack@john 123 fake street oven cleaning £85
jack@john 123 fake street carpet cleaning £165
ross@joey new york street moving cleaning £300
ross@joey new york street moving cleaning £320
emma@high the angel street moving cleaning £290
$sql="select count(DISTINCT(email)) as total from quotes GROUP BY 'email', 'service' ";
$result=mysqli_query($conSent,$sql);
$data=mysqli_fetch_assoc($result);
return $data['total'];
上面给了我 3,因为它没有分离服务,但答案应该是 4。
我究竟做错了什么?我不需要返回给我的任何行数据,只需计数为一个数字,这样我就可以说 x 个月有 x 数量的唯一报价。
谢谢
解决方案
计数(DISTINCT(电子邮件))
无论服务不同,都会返回“唯一”电子邮件的计数。这就是它的 Total = 3 的原因,因为分组的行只有 3 封“DISTINCT”电子邮件。
$sql="select email, service from quotes GROUP BY email, service ";
$result=mysqli_query($conSent,$sql);
return mysqli_num_rows($result);
推荐阅读
- c# - 是否有可能通过 Wix C# 中的单个安装程序同时使用 32 位和 64 位 MS Office 插件?
- python - For 循环不拾取字符串中的特殊字符
- python - TFlite:`ValueError:'118' 的 Mmap 失败`
- android - 如何使键盘仅出现在 EditText 下方
- version-control - Rundeck 项目 SCM exportUuidBehavior“原始”覆盖我的工作 UUID
- mongodb - 来自多个 mongo 实例的 MongoDB 导出器指标
- linux-kernel - 每个进程并行运行时是否有自己的虚拟地址空间?
- python - 拒绝只包含空格的字符串
- php - 允许每个用户单击一次元素
- c - 将使用 Windows 编译器的 C 交叉编译的 make-system 从 Cygwin 移动到 WSL2