Sql server 从SQL中的同一个表ID在列中选择不同的值
我已经搜索了很多关于它的信息,但是我找不到任何关于我的问题的相关信息。我有一个这样的数据集Sql server 从SQL中的同一个表ID在列中选择不同的值,sql-server,Sql Server,我已经搜索了很多关于它的信息,但是我找不到任何关于我的问题的相关信息。我有一个这样的数据集 Column1 Column2 A B A B A C X B X B Y C Y B T A T A T A 我可以用发生的总数区分第1列。但实际上我
Column1 Column2
A B
A B
A C
X B
X B
Y C
Y B
T A
T A
T A
我可以用发生的总数区分第1列。但实际上我想删除常量行。当我运行查询时,结果应该是这样的
Column1 Column2
A B
A B
A C
Y C
Y B
如上所述,A和Y在第2列中有不同的值。我如何质疑这一点?我正在使用Sql Server 2014在执行任何操作之前,是否要计算配对的发生次数
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
这将为您提供每个配对的列表以及配对频率。接下来,您要计算ColumnA中每个值有多少对,并删除只有一个选项的对:
SELECT ColumnA, count(*)
FROM
(
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
)
GROUP BY ColumnA
HAVING count(*) > 1
这将为您提供一个要查找的ColumnA值列表。从这里,您可以使用WHERE.在原始数据中查找ColumnA的值。。在
语句中:
SELECT ColumnA, ColumnB
FROM [source]
WHERE ColumnA IN
(
SELECT ColumnA, count(*)
FROM
(
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
)
GROUP BY ColumnA
HAVING count(*) > 1
)
在你做任何事情之前,你想数一数配对发生的次数
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
这将为您提供每个配对的列表以及配对频率。接下来,您要计算ColumnA中每个值有多少对,并删除只有一个选项的对:
SELECT ColumnA, count(*)
FROM
(
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
)
GROUP BY ColumnA
HAVING count(*) > 1
这将为您提供一个要查找的ColumnA值列表。从这里,您可以使用WHERE.在原始数据中查找ColumnA的值。。在
语句中:
SELECT ColumnA, ColumnB
FROM [source]
WHERE ColumnA IN
(
SELECT ColumnA, count(*)
FROM
(
SELECT ColumnA, ColumnB, count(*)
FROM [source]
GROUP BY ColumnA, ColumnB
)
GROUP BY ColumnA
HAVING count(*) > 1
)
计数(不同…)可能与CTE一起工作:
; WITH CTE AS (
SELECT Column1
FROM [my_table]
GROUP BY Column1
HAVING COUNT(DISTINCT Column2) > 1
)
SELECT t.*
FROM [my_table] t
JOIN CTE ON CTE.Column1 = t.Column1;
计数(不同…)可能与CTE一起工作:
; WITH CTE AS (
SELECT Column1
FROM [my_table]
GROUP BY Column1
HAVING COUNT(DISTINCT Column2) > 1
)
SELECT t.*
FROM [my_table] t
JOIN CTE ON CTE.Column1 = t.Column1;
那么您想删除列1中的值在列2中只有一个值的行吗?如果他们有多个第2栏的可能性,你想离开他们吗?是的。这正是我想要查询的。所以您想要删除列1中的值在列2中只有一个值的行吗?如果他们有多个第2栏的可能性,你想离开他们吗?是的。这正是我想问的。谢谢你,弗里茨。有了sql server的一些配置,我就可以做到了。谢谢Fritz。通过sql server的一些配置,我可以做到这一点。