php - 选择按天分组的列值总和
问题描述
我有一个表格,其中包含每个发出的订单的日期时间、订单价值和件数列。日期时间是标准的日期时间 mysql 格式。
为了得到订单的总和,我有一个这样的查询:
$sqlsum = "SELECT SUM(order_value) FROM orders";
if (mysqli_query($conn, $sqlsum)) {
$resultsum = mysqli_query($conn, $sqlsum);
while($row = mysqli_fetch_assoc($resultsum)) {
$total_sales = $row['SUM(order_value)'];
// and here I use the value in a simple report
}
}
要获得所有单笔订单的报告,通常我会这样做:
<?php
$sql = "SELECT * FROM orders";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$order_time = $row["datetime"];
$order_value = $row["order_value"];
$pieces_number = $row["pieces"];
// and here I use the results in a detailed report
}
}
?>
现在我必须制作两份不同的报告,每天一份,每月一份,每份都必须显示:
- 订单数
- 订单值
总和 - 件数总和
查询应该如何获得计数每天的订单数量以及每天的价值和件数的总和?
在网站上搜索类似问题,但没有找到满足我需求的明确解决方案的帖子。
解决方案
在第一种情况下,您需要使用以下DATE()
功能按天分组:
SELECT
DATE(datetime) day,
COUNT(*) orderscounter,
SUM(order_value) valuesum,
SUM(pieces) piecessum
FROM orders
GROUP BY day
在第二种情况下,您需要使用YEAR()
andMONTH()
函数按年/月分组:
SELECT
YEAR(datetime) year,
MONTH(datetime) month,
COUNT(*) orderscounter,
SUM(order_value) valuesum,
SUM(pieces) piecessum
FROM orders
GROUP BY year, month
推荐阅读
- excel - 有没有办法改变拖动函数的工作方式?
- python - 作为另一个数据框中其他变量和值的函数,在数据框中创建变量的快速方法?
- http - 在图像 HTTP 响应 Jetty 中包含文本标头
- javascript - 如何从 C# 服务器中的 POST(或其他 HTTP)请求访问参数?
- android - 迁移到 AndroidX 后,Gradle connectedCheck 失败并显示“未找到测试”
- python - Python Bs4:如何根据该行的特定“td”值检索表中的行
- c# - 从使用方法外部变量的不同类调用方法
- javascript - Oracle中的阿拉伯数字方向问题
- python - Django简单历史没有记录用户
- bash - 如何在第一个字符/下划线和重命名后去除文件名