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

时间:2014-11-20 16:01:21

标签: php mysql

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

我一直在尝试计算特定国家/地区名称在数据库表格中显示的次数,然后在网页上打印出一个表格,其中显示了每个国家/地区名称及其在表格中显示的次数,如下所示,但我无法在任何地方找到任何这类事物的例子,它们总是太不同而无法提供很多帮助。我还想通过最大到最小计数来订购表格,并且还能够限制使用单选按钮显示的国家数量(我已经开始工作)。

countryName | numberOfSales
Belize      |       10
Brazil      |        6
Cameroon    |       64
Colombia    |       23
Costa Rica  |       47

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

如果您的数据库中有两个表(在我的情况下是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子句。

我希望这不会让事情变得太复杂。你以后会用两张桌子来感谢我(我不知道你是否已经这样做过。如果你这样做,NICE)。

与在MySql中计算相同行相关:Count number of identical rows in MySQL with PHP

最好的问候。