admin

使用SQL对Access数据库列中的字符进行计数

sql

我有下表

col1  col2  col3  col4
====  ====  ====  ====
1233  4566  ABCD  CDEF 
1233  4566  ACD1  CDEF
1233  4566  D1AF  CDEF

我需要计算col3中的字符,因此从上表中的数据中可以得出:

char  count
====  =====
A         3
B         1
C         2
D         3
F         1
1         2

仅使用SQL可以实现吗?

目前,我正在考虑将参数传递到SQL查询中,并依次计算字符数,然后求和,但是我还没有启动VBA部分,坦率地说,我不想这样做。

这是我目前的查询:

PARAMETERS X Long;
SELECT First(Mid(TABLE.col3,X,1)) AS [col3 Field], Count(Mid(TABLE.col3,X,1)) AS Dcount
FROM TEST
GROUP BY Mid(TABLE.col3,X,1)
HAVING (((Count(Mid([TABLE].[col3],[X],1)))>=1));

非常感谢您提供想法和帮助,因为我通常不使用Access和SQL。


阅读 501

收藏
2021-07-01

共1个答案

admin

知道colum3的固定长度为4,这个问题就很容易了。

假设有一个视图V,该视图V包含四列,每列对应第3列中的一个字符。

V(c1, c2, c3, c4)

不幸的是,我不熟悉特定于Access的SQL,但这是您需要的常规SQL语句:

SELECT c, COUNT(*) FROM
(
SELECT c1 AS c FROM V
UNION ALL
SELECT c2 FROM V
UNION ALL
SELECT c3 FROM V
UNION ALL
SELECT c4 FROM V
)
GROUP BY c
2021-07-01