SQL 计算不同列并返回所有行

问题描述 投票:0回答:1

我在 MySQL 中有一个表,我正在尝试过滤来自 ColA 的数据并计算 ColB 中结果的实例,同时仍然获取所有匹配的行

表名称:CityCityStuff

ColA ColB ColC
A市 B市 其他东西
A市 C市 其他东西
B市 C市 其他东西
B市 A市 其他东西
B市 A市 其他东西
C市 A市 其他东西
C市 A市 其他东西
C市 B市 其他东西
C市 城市D 其他东西
C市 E城 其他东西
C市 E城 其他东西

我想知道:

SELECT * FROM CityCityStuff WHERE ColA = 'CityC'

然后每个 ColB 重复多少次,同时仍然获得 ColA = CityC 的所有行

返回的结果如下所示:

ColA ColB ColC 总计
C市 A市 其他东西 2
C市 A市 其他东西 2
C市 B市 其他东西 1
C市 城市D 其他东西 1
C市 E城 其他东西 2
C市 E城 其他东西 2

或:

ColA ColB ColC 总计
C市 A市 其他东西 2
C市 A市 其他东西
C市 B市 其他东西 1
C市 城市D 其他东西 1
C市 E城 其他东西 2
C市 E城 其他东西
sql mysql select count group
1个回答
0
投票

您可以在 MariaDB 中使用这个

count()
windows 函数。

select 
  colA, 
  colB, 
  colC, 
  count(*) over (partition by colA, colB) as totalEach
from citycitystuff
where colA = 'CityC'
colA colB colC 总计每个
C市 A市 其他东西 2
C市 A市 其他东西 2
C市 B市 其他东西 1
C市 城市D 其他东西 1
C市 E城 其他东西 2
C市 E城 其他东西 2

小提琴

© www.soinside.com 2019 - 2024. All rights reserved.