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='订单表';
我们可以通过以下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
表示已支付订单。
通过以上统计,我们可以更好地了解我们的订单表数据,为产品运营和业务发展提供支持和指导。