【发布时间】:2015-02-25 18:01:43
【问题描述】:
我有下表,我想做以下事情:
计算每个项目在表格中出现的次数
统计
DISTINCT的项目数-
按名称对项目进行分组
+-------+---------+ | id | names | +-------+---------+ | 1 | Apple | | 2 | Orange | | 3 | Grape | | 4 | Apple | | 5 | Apple | | 6 | Orange | | 7 | Apple | | 8 | Grape | +-------+---------+对于 1. 和 3. 点,我有以下查询,效果很好:
SELECT * , COUNT(names) as count_name, FROM tbl_products WHERE type = '1' GROUP BY names所以我得到:
Apple (4) Orange (2) Grape (2)
现在我还想计算按行分组的数量并添加一行来计算不同的元素,但是有一些问题,因为 MySQL 接受查询但无法输出结果:
SELECT * ,
COUNT(names) as count_name,
COUNT(DISTINCT names) as count_total
FROM tbl_products WHERE type = '1'
GROUP BY names
谁能建议可能是什么问题?
编辑:为了获得更多许可,我想要一张这样的桌子:
+-------+---------+------------+-------------+
| id | names | count_ctg | count_total |
+-------+---------+------------+-------------+
| 1 | Apple | 4 | 3 |
| 2 | Orange | 2 | 3 |
| 3 | Grape | 2 | 3 |
+-------+---------+------------+-------------+
【问题讨论】:
-
我不确定您的期望。你能提供一个你正在寻找的例子吗?
-
当然,我想得到 1。每个项目出现在表格中的次数,即 Apple - 4,Orange - 2,Grape - 2,然后我想得到 2。有多少不同的项目存在于表中 - 即 3 - 我们有 Apple、Orange 和 Grape,最后我想 3. 按名称对项目进行分组,即获得 3 行。
-
我的意思是,您能否编辑您的问题以显示您想要的查询的输出。
-
已编辑,我想现在我可以尝试通过 PHP 获取查询的计数...这可能更容易做到。
-
SELECT * FROM YOURTABLE JOIN A_TABLE ON B_TABLE
标签: php mysql sql count distinct