php - 从mysql获取季度销售趋势

标签 php mysql codeigniter

如何从我在 codeigniter 中的 mysql 数据库中获取每季度的(3 个月) 销售趋势?

我有一个数据表

order
-id
-paid_date
-order_total

我想要接收的数据是总订单值(value)的斜率,而不是过去 3 个月的订单数量。

模型代码

$results = $this->db->query("SOME_SQL");

我开始写下面的内容,但对如何将结果显示为斜率感到困惑 ::其中 90 代表大约 3 个月

    $day_seconds = 86400;
    $period = 90 * $day_seconds;

    $this->db->select('COUNT(*) AS total', false);
    $this->db->select("FROM_UNIXTIME(`paid_date`, '%Y-%m-%d') AS date", false);
    $this->db->where('paid_date >', time()-$period);

示例预期输出

输出应该只有 2 个值以显示趋势。

$results = [ [ 0 => 44 ], [1=>88] ];

理想情况下需要知道销售总收入是向上倾斜还是向下倾斜,较高的正斜率表示销售额大幅增加

例如:

//Dramatic Increase of sales
$results = [ [ 0 => 22 ], [1=>150] ];


//Slow Increase of sales
$results = [ [ 0 => 50 ], [1=>55] ];

//Slow Decrease of sales
$results = [ [ 0 => 64 ], [1=>55] ];

最佳答案

试试这个:

SELECT
    *, 
    CASE WHEN last_3 > prev_3 THEN
        'sales up'
    ELSE
        'sales down'
    END AS sales_change,
    (
       CONCAT(((last_3 - prev_3) * 100) / last_3, '%')
    ) AS precentage_change
FROM
    (
        SELECT
            SUM(order_total) AS last_3
        FROM
            TB
        WHERE
            paid_date > UNIX_TIMESTAMP(CURDATE() - INTERVAL 3 MONTH)
    ) AS tb1,
    (
        SELECT
            SUM(order_total) AS prev_3
        FROM
            TB
        WHERE
            paid_date < UNIX_TIMESTAMP(CURDATE() - INTERVAL 3 MONTH)
        AND paid_date > UNIX_TIMESTAMP(CURDATE() - INTERVAL 6 MONTH)
    ) AS tb2

这应该给你 4 个值:

  • last_3 - 最近 3 个月的订单总和
  • prev_3 - 之前3个月的订单总和
  • sales_change - 过去 3 个月销售额上升或下降时发送的短信
  • precentage_change - 数值(带百分比)以显示过去 3 个月和之前 3 个月之间销售额百分比的变化

在 mySQL 中使用 INTERVAL,您可以根据需要使用几天或几周来调整它

INTERVAL 1 DAY
INTERVAL 1 WEEK

关于php - 从mysql获取季度销售趋势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30594658/

相关文章:

php - CS50 Pset7 产品组合

mysql - 使用sequelize和docker-compose从 Node 应用程序连接到MySQL DB

php - 如何将数据数组从模型传递到 Controller ,然后再传递回模型?

php - 插入批处理 codeigniter 中的非法字符串偏移

PHP - 在 Raspberry Pi 上打开文件或死亡

PHP 在实例化之前检查父类

php - mysql 插入数据

php - 我的单选按钮在网页上不可见

mysql - 如何选择具有相同值的所有行

php - CodeIgniter 加入无法选择