首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同顺序统计量的表结构

不同顺序统计量的表结构
EN

Stack Overflow用户
提问于 2013-11-19 21:28:35
回答 1查看 105关注 0票数 0

我正在创建一个市场,我希望有这样的不同类型的统计数据:

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

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

代码语言:javascript
复制
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;

此表结构是否足以获得统计数据类型之前写入所需的所有参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 22:50:58

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

1.产品更多地销售

此查询显示购买前十名产品。

代码语言:javascript
复制
SELECT 
    COUNT(*), id_product 
FROM 
    order_stats
GROUP BY 
    id_product
ORDER BY 
    COUNT(*) DESC
LIMIT 10;

2.各类产品更多地销售

此查询显示了所购买产品的前十大类。

代码语言:javascript
复制
SELECT 
    COUNT(*), id_cat 
FROM 
    order_stats
GROUP BY 
    id_cat
ORDER BY 
    COUNT(*) DESC
LIMIT 10;

3.购买此产品的用户甚至购买了该产品的

此查询显示还购买产品ID 2的用户购买的产品ID:

代码语言:javascript
复制
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类产品:

代码语言:javascript
复制
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种产品:

代码语言:javascript
复制
SELECT
    id_product
FROM
    order_stats
WHERE
    order_stats.id_user = 1
ORDER BY 
    date_ord DESC
LIMIT 10;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20082425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档