【问题标题】:MySQL query that returns names of all the customers that purchased more than 2 items in one orderMySQL 查询返回在一个订单中购买超过 2 件商品的所有客户的姓名
【发布时间】:2021-02-25 05:47:59
【问题描述】:

我有一个表格,其中包含有关涉及客户和销售人员的交易的信息。如何编写返回以下内容的 MySQL 查询:

  • 在一个订单中购买超过 2 件商品的所有客户,以及负责销售人员的姓名
  • 客户订购的所有产品及其价格的清单
  • 所有销售人员的列表,以及每个销售人员有多少订单 在过去的一年中,有多少人实际锻炼了

【问题讨论】:

  • 请展示您的尝试,最好使用表结构、示例数据和预期输出。
  • 非常欢迎样本数据和所需的输出(文本格式。没有图片!)

标签: mysql sql


【解决方案1】:

很难说没有看到您的数据库结构,但假设您有两个这样的表:

customer
-----------------
id int
name varchar
salesman varchar


purchase
------------------
id int
customer_id int
product_id int
date datetime
etc

那么你可以有一个查询

SELECT
   customer.name,
   count(*) as purchases
FROM
   customer JOIN purchase on customer.id = purchase.customer_id
GROUP BY
   customer.name
HAVING
   purchases > 2

这里的问题是使用 HAVING 而不是 WHERE。与 WHERE 在给出答案之前过滤数据不同,HAVING 子句可以使用您在查询中计算的值。

进一步阅读:https://www.mysqltutorial.org/mysql-having.aspx/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    相关资源
    最近更新 更多