我在MySQL中有表,我正在try 过滤Cola中的数据并计算Colb中结果的实例,同时仍然获得所有匹配的行

表格名称:CityCityStuff

ColA ColB ColC
CityA CityB Other Stuff
CityA CityC Other Stuff
CityB CityC Other Stuff
CityB CityA Other Stuff
CityB CityA Other Stuff
CityC CityA Other Stuff
CityC CityA Other Stuff
CityC CityB Other Stuff
CityC CityD Other Stuff
CityC CityE Other Stuff
CityC CityE Other Stuff

我想知道:

SELECT * FROM CityCityStuff WHERE ColA = 'CityC'

然后,在仍获得Cola=CityC的所有行的情况下,每个Colb重复多少次

返回的结果如下:

ColA ColB ColC TotalEach
CityC CityA Other Stuff 2
CityC CityA Other Stuff 2
CityC CityB Other Stuff 1
CityC CityD Other Stuff 1
CityC CityE Other Stuff 2
CityC CityE Other Stuff 2

-哦,不.

ColA ColB ColC TotalEach
CityC CityA Other Stuff 2
CityC CityA Other Stuff
CityC CityB Other Stuff 1
CityC CityD Other Stuff 1
CityC CityE Other Stuff 2
CityC CityE Other Stuff

推荐答案

这是我的db-fiddle次try

在MySQL v5.5、5.6、5.7、8.0中测试

CREATE TABLE CityCityStuff 
(
    ColA    VARCHAR(512),
    ColB    VARCHAR(512),
    ColC    VARCHAR(512)

);

INSERT INTO CityCityStuff (ColA , ColB , ColC ) VALUES
    ('CityA ', 'CityB ', 'Other Stuff'),
    ('CityA ', 'CityC ', 'Other Stuff'),
    ('CityB ', 'CityC ', 'Other Stuff'),
    ('CityB ', 'CityA ', 'Other Stuff'),
    ('CityB ', 'CityA ', 'Other Stuff'),
    ('CityC ', 'CityA ', 'Other Stuff'),
    ('CityC ', 'CityA ', 'Other Stuff'),
    ('CityC ', 'CityB ', 'Other Stuff'),
    ('CityC ', 'CityD ', 'Other Stuff'),
    ('CityC ', 'CityE ', 'Other Stuff'),
    ('CityC ', 'CityE ', 'Other Stuff')

Select * from CityCityStuff;

Select cola, colb, colc, (Select count(*) as TotalEach from CityCityStuff a Where a.ColB=b.ColB and cola='cityC') as TotalEach
from CityCityStuff b
where cola='cityC'
colA colB colC TotalEach
CityC CityA Other Stuff 2
CityC CityA Other Stuff 2
CityC CityB Other Stuff 1
CityC CityD Other Stuff 1
CityC CityE Other Stuff 2
CityC CityE Other Stuff 2

Mysql相关问答推荐

如何在逗号分隔字符串值中使用LEFT函数

如何在MySQL中检索两列的值不同的行

当日期附加到MySQL后,如何按日期说明排序?

如果我有USER列,如何将SQL CREATE TABLE与PostgreSQL和MySQL一起使用?

插入时发生日期时间字段溢出错误

为什么用PyMySQL构建的json返回结果会出现重复?

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

如何使用 DBD::mysql 判断 MySQL 服务是否正在运行

需要按总金额检索前 3 个供应商,每个类别 - 子类别

MySQL Join 查询位置从订单

MariaDB 下的慢速更新、删除和插入查询

如何在 MySQL 中删除具有 2 列作为复合主键的多行?

MySql 以秒为单位的两个时间戳之间的差异?

在 spring-boot jpa hibernate 中 >4<24 后与 Db 的连接终止

如何从 MySQL Workbench 中的图表生成 SQL 脚本?

PHP 判断 NULL

如何在 MySQL 中删除此索引?

MySQL DAYOFWEEK() - 我的一周从星期一开始

SELECT INTO 和未声明的变量错误

带有 WHERE 子句的 MySql 内连接