我在客户端及其眼镜的数据库中有一张表
customer_inventory_tbl :
SELECT * FROM customer_inventory_tbl
+-------+-------+-------+
|id(pk) | name | spex |
+-------+-------+-------+
|1 |John |Oval |
|2 |Steve |Angular|
|3 |John |Aviator|
|4 |Kevin |Supra |
|5 |Jamie |Oval |
|6 |Ben |Supra |
+-------+-------+-------+
(这是一种更简化的版本,哈哈)
如果我查看约翰的记录,就会显示
SELECT * FROM customer_inventory_tbl WHERE name=John
+-------+-------+-------+
|id(pk) | name | spex |
+-------+-------+-------+
|1 |John |Oval |
|3 |John |Aviator|
+-------+-------+-------+
但我要求的是在查看约翰的记录时,它会向我显示
+-------+-------+-------+-----+
|id(pk) | name | spex |count|
+-------+-------+-------+-----+
|1 |John |Oval |2 |
|3 |John |Aviator|1 |
+-------+-------+-------+-----+
那"计数" column是数据库中具有" Oval"的记录数。例如。
现在这很容易,如果我想计算数据库中的每条记录,但如何在查找特定名称时获取所有记录的计数。
我希望这是有道理的
答案 0 :(得分:1)
select c.*,
(
select count(1)
from customer_inventory_tbl
where spex = c.spex
) "count"
from customer_inventory_tbl c;
答案 1 :(得分:0)
根据上述说明,请尝试执行以下sql查询
SELECT *,(select count(id) from customer_inventory_tbl group by spex)
as count FROM customer_inventory_tbl WHERE name='John'
在上面提到的sql查询中,通过子查询检索计数器值,并使用 GROUP BY 子句根据spex列的值分组记录。