Php 获取准备语句中按类别分组的行的计数和总和
我准备了以下语句,返回为特定类别找到的行:Php 获取准备语句中按类别分组的行的计数和总和,php,sql,count,group-by,prepared-statement,Php,Sql,Count,Group By,Prepared Statement,我准备了以下语句,返回为特定类别找到的行: if ($stmt = $mysqli->prepare("SELECT Work,Amount from work_times where Category=?")) { $stmt->bind_param("s", $category); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($work,$amount);
if ($stmt = $mysqli->prepare("SELECT Work,Amount from work_times where Category=?")) {
$stmt->bind_param("s", $category);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($work,$amount);
while ($stmt->fetch()) {
echo $work.": £".$amount." each<br>";
}
按照行数对组进行排序,如上面的输出所示,这是我理想的选择。这应该可以:
SELECT `Work`, COUNT(*) AS sessions, SUM(`Amount`) AS Total
FROM work_times
GROUP BY `Work`, `Amount`
结果
| WORK | SESSIONS | TOTAL |
------------------------------------------
| Consultancy Session | 5 | 250 |
| Therapy Session | 2 | 40 |
| Therapy Session | 3 | 120 |
|工作|会议|总计|
------------------------------------------
|咨询会议| 5 | 250|
|治疗疗程| 2 | 40|
|治疗疗程| 3 | 120|
您能提供具有所需结果的样本记录吗?
按日期排序
,而不选择日期
?@JW我现在添加了样本records@njk我已经取消了订单哦,还有一件事。是否有方法返回组的每一行?-我想在每个小组下面重复每个小组的会议日期。因此,第一组下有5个日期,第二组下有2个日期,第三组下有3个日期。因为我正在对查询中的会话进行分组,所以我不确定如何引用单个行。我不确定您想要什么,但听起来您可以使用交叉联接
。我已将上面的问题更改为包含我要查找的输出,也就是说,每组下面每节课的日期。我建议你提出一个新问题,因为这个问题已经失去了原来的意义。为了完成您想要的,您需要一个内部循环来查找每个“会话”的时间好的,我将问一个关于获取每个会话的日期的新问题。你知道为什么Sum(Amount)
不返回每个分组的金额,即第一个分组250英镑,而是返回50英镑吗?这似乎仍然是原始问题的主题!
| WORK | SESSIONS | TOTAL |
------------------------------------------
| Consultancy Session | 5 | 250 |
| Therapy Session | 2 | 40 |
| Therapy Session | 3 | 120 |