gpt4 book ai didi

mysql - 不同订单统计的表结构

转载 作者:行者123 更新时间:2023-11-30 01:01:34 25 4
gpt4 key购买 nike

我正在创建一个市场,我希望有不同类型的统计数据,如下所示:

  1. 产品更畅销
  2. 更畅销的产品类别
  3. 购买此产品的用户甚至购买了此产品
  4. 用户偏好的产品类别
  5. 用户最近购买的产品

为了限制表的创建,我正在考虑这种独特的表结构:

CREATE TABLE IF NOT EXISTS `order_stats` (
`id_order` int(11) NOT NULL,
`id_product` int(11) NOT NULL,
`id_seller` int(11) NOT NULL,
`id_user` int(11) NOT NULL,
`id_cat` int(11) NOT NULL,
`id_subcat` int(11) NOT NULL,
`id_type` int(11) NOT NULL,
`date_ord` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这个表结构是否足以获取之前写入的统计类型所需的所有参数?

最佳答案

所有这些都可以通过您建议的表结构来实现。我已经包含了示例查询 - 它们只返回 ID,因为我对数据库中的其他表一无所知。我希望我已经理解您想要查询的目的 - 如果没有,请告诉我。

<强>1。产品更畅销

此查询显示购买的前 10 种产品

SELECT 
COUNT(*), id_product
FROM
order_stats
GROUP BY
id_product
ORDER BY
COUNT(*) DESC
LIMIT 10;

<强>2。产品类别更畅销

此查询显示购买的前 10 个产品类别

SELECT 
COUNT(*), id_cat
FROM
order_stats
GROUP BY
id_cat
ORDER BY
COUNT(*) DESC
LIMIT 10;

<强>3。购买该产品的用户甚至购买了该产品

此查询显示同时购买了产品 ID 2 的用户所购买的产品的 ID:

SELECT DISTINCT
id_product
FROM
order_stats
WHERE
order_stats.id_user IN (SELECT id_user FROM order_stats WHERE id_product = 2)
AND
order_stats.id_product != 2;

<强>4。用户偏好的产品类别

此查询显示用户 1 购买的前 10 个产品类别:

SELECT
COUNT(*), id_cat
FROM
order_stats
WHERE
order_stats.id_user = 1
GROUP BY
id_cat
ORDER BY
COUNT(*) DESC
LIMIT 10;

<强>5。用户最近购买的产品

此查询显示用户 1 最近购买的 10 件产品:

SELECT
id_product
FROM
order_stats
WHERE
order_stats.id_user = 1
ORDER BY
date_ord DESC
LIMIT 10;

关于mysql - 不同订单统计的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20082425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com