mysql订单表统计订

2023年 8月 6日 64.7k 0

MySQL订单表是一个非常重要的表,它用于记录网站或应用程序的订单信息。通过统计订单表,我们可以了解订单流量、交易金额等各种关键指标。

CREATE TABLE `orders` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`user_id` int(11) NOT NULL COMMENT '用户ID',
`goods_id` int(11) NOT NULL COMMENT '商品ID',
`quantity` int(11) NOT NULL COMMENT '商品数量',
`amount` decimal(10,2) NOT NULL COMMENT '订单金额',
`status` TINYINT(2) NOT NULL DEFAULT '1' COMMENT '订单状态 1:待支付 2:已支付 3:已取消',
`create_time` int(11) NOT NULL COMMENT '创建时间',
`update_time` int(11) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';

mysql订单表统计订

我们可以通过以下SQL语句统计订单表的数据:

-- 统计当天订单数量和交易金额
SELECT COUNT(*) AS `order_count`, SUM(`amount`) AS `total_amount`
FROM `orders`
WHERE `status` = 2 AND `create_time` >= UNIX_TIMESTAMP(CURDATE())
-- 统计当月订单数量和交易金额
SELECT COUNT(*) AS `order_count`, SUM(`amount`) AS `total_amount`
FROM `orders`
WHERE `status` = 2 AND `create_time` >= UNIX_TIMESTAMP(DATE_FORMAT(NOW(), '%Y-%m-01'))
-- 统计最近30天每天的订单数量和交易金额
SELECT DATE_FORMAT(FROM_UNIXTIME(`create_time`), '%Y-%m-%d') AS `order_date`, COUNT(*) AS `order_count`, SUM(`amount`) AS `total_amount`
FROM `orders`
WHERE `status` = 2 AND `create_time` >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))
GROUP BY `order_date`
ORDER BY `order_date` ASC

以上代码可以分别统计当天、当月和最近30天的订单数量和交易金额。其中,`status` = 2表示已支付订单。

通过以上统计,我们可以更好地了解我们的订单表数据,为产品运营和业务发展提供支持和指导。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论