![](/img/trans.png)
[英]Get Distinct rows and their record count with where clause for the count only
[英]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.