Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ms访问合并行_Sql_Ms Access_Sum - Fatal编程技术网

Sql ms访问合并行

Sql ms访问合并行,sql,ms-access,sum,Sql,Ms Access,Sum,这似乎应该是一个简单的解决方案,但出于某种原因,我无法对此进行思考 我有一个表,它的主键是USER\u FULL\u NAME,右边是大约15列各种度量。我有一些例子,其中多个用户名拼写错误,但实际上应该汇总到同一行。例如,“David Hands”可以拼写为“Davide Handes”,而“Bobby Orr”可以拼写为“Boby Or”。表中总共大约有150行,但大约有136行是唯一的用户名 如何编写SQL查询,将150行合并到唯一的136行中,其中应该合并的用户\u全名实际上是合并的

这似乎应该是一个简单的解决方案,但出于某种原因,我无法对此进行思考

我有一个表,它的主键是
USER\u FULL\u NAME
,右边是大约15列各种度量。我有一些例子,其中多个
用户名
拼写错误,但实际上应该汇总到同一行。例如,“David Hands”可以拼写为“Davide Handes”,而“Bobby Orr”可以拼写为“Boby Or”。表中总共大约有150行,但大约有136行是唯一的
用户名

如何编写SQL查询,将150行合并到唯一的136行中,其中应该合并的
用户\u全名
实际上是合并的


我在一个名为
TPS\u User\u NAME
的矩阵表中添加了另一列,一列用于
User\u FULL\u NAME
,另一列用于
DUPLICATE\u User\u FULL\u NAME
。这是我提出的问题,但似乎不起作用:

select

tun.user_full_name,

sum(ad.processed_mss)

from all_data ad left join tps_user_names tun on ad.user_full_name = tun.user_full_name and ad.user_full_name = tun.duplicate_user_full_name

where ad.user_full_name = 'A' and ad.user_full_name = 'A1'

group by tun.user_full_name

要在实践中正确处理这一问题绝非易事,即使人们很容易注意到“相似”并因此采用相同的名称

想想看——如果你用算法来做这件事,你会有很多临界情况,你——或者计算机——需要打电话:乔恩·史密斯和约翰·史密斯或者乔恩·史密斯是同一个人吗?大概也许不是

除非您有其他标识符,否则无法知道,这意味着您将很难从中获得有意义的聚合。进行模糊文本匹配的一种方法是计算Levenshtein距离,这是一种量化两个字符串之间的距离的方法,但是由于上述原因,您仍然可能会得到误报

如果您的问题是一个反复出现的问题(例如,需要频繁更新),您可能需要重新考虑您的数据库结构,使用一个不是实际名称的主键,并查看如何将新条目添加到表中。如果可能的话,这是评估您是否正在处理新用户名的理想时间


如果是一次性的,我会查询出16行中确实有重复项的行,并分别进行评估。

在实践中,要正确处理这一问题绝非易事,即使很容易发现“相似”并因此采用相同的名称

想想看——如果你用算法来做这件事,你会有很多临界情况,你——或者计算机——需要打电话:乔恩·史密斯和约翰·史密斯或者乔恩·史密斯是同一个人吗?大概也许不是

除非您有其他标识符,否则无法知道,这意味着您将很难从中获得有意义的聚合。进行模糊文本匹配的一种方法是计算Levenshtein距离,这是一种量化两个字符串之间的距离的方法,但是由于上述原因,您仍然可能会得到误报

如果您的问题是一个反复出现的问题(例如,需要频繁更新),您可能需要重新考虑您的数据库结构,使用一个不是实际名称的主键,并查看如何将新条目添加到表中。如果可能的话,这是评估您是否正在处理新用户名的理想时间


如果是一次性的,我会查询出16行中确实有重复项的行,并分别进行评估。

在实践中,要正确处理这一问题绝非易事,即使很容易发现“相似”并因此采用相同的名称

想想看——如果你用算法来做这件事,你会有很多临界情况,你——或者计算机——需要打电话:乔恩·史密斯和约翰·史密斯或者乔恩·史密斯是同一个人吗?大概也许不是

除非您有其他标识符,否则无法知道,这意味着您将很难从中获得有意义的聚合。进行模糊文本匹配的一种方法是计算Levenshtein距离,这是一种量化两个字符串之间的距离的方法,但是由于上述原因,您仍然可能会得到误报

如果您的问题是一个反复出现的问题(例如,需要频繁更新),您可能需要重新考虑您的数据库结构,使用一个不是实际名称的主键,并查看如何将新条目添加到表中。如果可能的话,这是评估您是否正在处理新用户名的理想时间


如果是一次性的,我会查询出16行中确实有重复项的行,并分别进行评估。

在实践中,要正确处理这一问题绝非易事,即使很容易发现“相似”并因此采用相同的名称

想想看——如果你用算法来做这件事,你会有很多临界情况,你——或者计算机——需要打电话:乔恩·史密斯和约翰·史密斯或者乔恩·史密斯是同一个人吗?大概也许不是

除非您有其他标识符,否则无法知道,这意味着您将很难从中获得有意义的聚合。进行模糊文本匹配的一种方法是计算Levenshtein距离,这是一种量化两个字符串之间的距离的方法,但是由于上述原因,您仍然可能会得到误报

如果您的问题是一个反复出现的问题(例如,需要频繁更新),您可能需要重新考虑您的数据库结构,使用一个不是实际名称的主键,并查看如何将新条目添加到表中。如果可能的话,这是评估您是否正在处理新用户名的理想时间


对于一次性的,我会查询出16行中有重复项的行,并分别进行评估。

严格来说,这不是一个编码解决方案,但您可以创建一个矩阵表,它有两列,重复的用户名和实际的用户名,左键连接到此表,并在进行聚合时使用实际的用户名。除了重新访问您的模式或更正表本身的错误之外,我认为这是最好的方法
SELECT    Nz(tun.user_full_name, ad.user_full_name) As user_full_name_agg,
          SUM(ad.processed_mss)
FROM      all_data ad LEFT JOIN tps_user_names tun
          ON ad.user_full_name = tun.duplicate_user_full_name
GROUP BY  Nz(tun.user_full_name, ad.user_full_name);