繁体   English   中英

PHP - 计算其他两列不同的不同行

[英]PHP - Count distinct rows where two other columns are distinct

我正在尝试 output 来自其他两个表因素的行的不同结果的数量,但我不确定如何使这项工作。 这就是我所拥有的。 我已经计算了一个单词出现在数据库中的总次数。

$total = "SELECT word, count(word) total FROM Table WHERE Word = 'Apples'";

total = 9 好的,很好。 那很简单。

+-------------+--------------+--------------+--------------+
| BookID (INT)| chapter (INT)| page (INT)   | word (VCHAR) |
+-------------+--------------+--------------+--------------+
| 40          | 1            | 8            | Apples       | 
| 40          | 1            | 8            | Apples       | 
| 40          | 1            | 15           | Apples       | 
| 40          | 4            | 23           | Apples       |
| 50          | 3            | 15           | Apples       | 
| 50          | 6            | 15           | Apples       | 
| 51          | 13           | 1            | Apples       |
| 52          | 2            | 3            | Apples       |
| 60          | 8            | 1            | Apples       |
+-------------------------------------------+--------------+

现在,这就是我需要帮助的地方。 我想找出该词在每本书每一章的不同页面上使用的次数。 因此,根据上表,我预计总数为 8。我已接近此代码,但找不到下一步。

$pages = "SELECT COUNT(DISTINCT page) AS num FROM Table WHERE word = 'Apples' GROUP BY BookID, chapter, page";

这给了我:

1
1
1
1
1
1
1
1

所以,我得到了正确的号码。 8 行。 现在我只需要将它们和 output 加起来作为一个数字。 8. 我研究了 SUM,但这似乎不起作用(如果我弄错了,请告诉我应该如何包含它。)

您可以简单地将当前查询的总和作为子查询:

SELECT SUM(num) AS total
FROM
(
    SELECT COUNT(DISTINCT page) AS num
    FROM yourTable
    WHERE word = 'Apples'
    GROUP BY BookID, chapter, page
) t;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM