mysql - 我怎样才能查询这个sql来获得最畅销的产品

标签 mysql sql

这是我的数据库示例: orderdetails 表以及与 products 表相关的 ProID

| ProID | OrderID | OrderQuantity | OrderPrice |
|  93   |    17   |       1       |     150    |
|  16   |    18   |       1       |     100    |
|  93   |    19   |       3       |     450    |
|  93   |    17   |       1       |     150    |

产品

| ProID | ProPicture | ProName | ProPrice |
|  93   | ./a.jpg    |  Iphone |    150   |
|  16   | ./b.jpg    |  Nokia  |    100   |

如何从orderdetails表的products表中获取最畅销的产品信息:ProID、ProPiecture、ProName、ProPrice?

最佳答案

您可以在 ProID 上的表之间使用 SQL 连接,例如

from products as p
inner join orderdetails as od
   on p.ProID = od.ProID

您可以使用group by语法来确保获得不同的行,例如

group by p.ProID

使用聚合函数(例如 sum、count 和 avg)来找出选择中的总计,例如

select sum(od.OrderQuantity) as total

使用order by语法来显示 HitTest 门的答案,例如

order by sum(od.OrderQuantity) desc

使用limit显示前n个结果,例如

limit 5

希望这能为您提供足够的指导来自行制定 SQL。

注释,我为表指定了别名,以确保列名之间不会发生冲突。由于 SQL 计算数据集的方式,您无法在订单语句中引用总计。我使用了内部联接,但您可能想研究左联接和右联接。

关于mysql - 我怎样才能查询这个sql来获得最畅销的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20510628/

相关文章:

mysql - 如何在 MySQL 中查看表分区大小(甚至可能吗?)

MySQL 使用 UTF8 字符的顺序不正确

mysql - RDS 数据库存储空间不足

php - 关于连接的 PHP MySQL 查询

sql - PostgreSQL:如何在函数中并行运行查询?

sql - 如何获取 ID 列表的所有 JPA 对象,或者如何从此 SQL 查询中进行 JPA 查询?

sql - 如何查看物化 View 的原始脚本?

mysql - "decimal"- 列数据被截断

sql - Azure 数据库隔夜复制

mysql - select * from table where something 与 select column from table where something