PHP/MySQL - 计算销售数量并显示该数字以及销售者


PHP/MySQL - Count number of sales made and display that number and who sold them

我正在为大学开发一个PHP应用程序,它假装我向/从国家/地区购买和转售特定物品。我有一个表格,其中包含交易ID和制作它们的国家/地区的名称。

我一直在尝试计算特定国家/地区名称在数据库表中出现的次数,然后在网页上打印出一个表格,显示每个国家/地区的名称和它们在表格中出现的次数,如下所示,但我在任何地方都找不到任何此类事情的例子,它们总是太不同而没有太大帮助。我还想按最大到最小计数对表格进行排序,并且还可以限制使用单选按钮显示的国家/地区数量(我已经在工作了)。

国家名称 |销售数量伯利兹 |      10巴西 |       6喀麦隆 |      64哥伦比亚 |      23哥斯达黎加 |      47

您需要选择国家/地区并计数,然后按国家/地区分组。如果你想订购它,你也需要添加它。

SELECT
    countryName,
    count(*) as numberOfSales 
FROM
    sales
GROUP BY
    countryName
ORDER BY
    numberOfSales DESC

此查询在结果中将有 2 列。国家/地区名称及其根据分组出现的次数。我们按国家/地区名称列对所有记录进行分组。在查询中,我们将列命名为 numberOfSales,因此我们可以在排序时使用它,以便国家/地区在 numberOfSales 中按从大到小的顺序排列。

如果您的数据库中有两个表(在我的例子中为 MySql),一个用于存储不同的国家/地区,另一个用于销售/订单。

countries

id      INT
country VARHCAR(255)

表: sales

id         INT
country_id INT
title      VARCHAR(255)

这里两个表之间存在 1:多关系。一个国家/地区可以有多个销售,但一个销售只能属于一个国家/地区。

然后,您可以通过运行以下 SQL 查询来获取特定国家/地区的销售数量。如果您想查找丹麦的销售数量,您可以执行以下操作:

SELECT countries.country, COUNT(*) AS numberOfSales 
FROM countries 
    JOIN sales 
    ON sales.country_id = countries.id 
WHERE countries.country = 'denmark';

如果要查看每个国家/地区的销售总数,可以使用以下 SQL 查询:

SELECT countries.country, COUNT(*) AS numberOfSales 
FROM countries 
    JOIN sales 
    ON sales.country_id = countries.id
GROUP BY countries.country;

在这里,GROUP BY子句将获取countries表中每个国家/地区的结果。如有必要,您可以添加LIMIT子句。

我希望这不会使事情变得过于复杂。你稍后会通过使用两个表格来感谢我(我不知道你是否已经这样做了。如果你这样做,很好)。

与在 MySql 中计算相同行相关:使用 PHP 计算 MySQL 中相同行数

此致敬意。