Sql 它应该如何工作的细节。这是一个很难理解的问题,在许多可能的例外情况以及如何处理它们上有很多含糊不清的地方。我为含糊不清的地方道歉。我只是想看看那些生日不同、肤色不同的人。你想让我澄清什么?感谢您的帮助:-)如果您添加记录“Bob”、“5/10”、“Red”
Sql 它应该如何工作的细节。这是一个很难理解的问题,在许多可能的例外情况以及如何处理它们上有很多含糊不清的地方。我为含糊不清的地方道歉。我只是想看看那些生日不同、肤色不同的人。你想让我澄清什么?感谢您的帮助:-)如果您添加记录“Bob”、“5/10”、“Red”,sql,sql-server,tsql,sql-server-2008,group-by,Sql,Sql Server,Tsql,Sql Server 2008,Group By,它应该如何工作的细节。这是一个很难理解的问题,在许多可能的例外情况以及如何处理它们上有很多含糊不清的地方。我为含糊不清的地方道歉。我只是想看看那些生日不同、肤色不同的人。你想让我澄清什么?感谢您的帮助:-)如果您添加记录“Bob”、“5/10”、“Red”;Bob现在应该包含在结果中,但不会随我的testdata@Dems,如果您添加“鲍勃”、“5/10”、“红色”,是否应显示?如果您添加了一个“Jim”、“5/12”、“紫色”,该怎么办?如果添加一个“Bob”、“5/10”、“黄色”会不会仍然
它应该如何工作的细节。这是一个很难理解的问题,在许多可能的例外情况以及如何处理它们上有很多含糊不清的地方。我为含糊不清的地方道歉。我只是想看看那些生日不同、肤色不同的人。你想让我澄清什么?感谢您的帮助:-)如果您添加记录
“Bob”、“5/10”、“Red”
;Bob现在应该包含在结果中,但不会随我的testdata@Dems,如果您添加“鲍勃”、“5/10”、“红色”,是否应显示?如果您添加了一个“Jim”、“5/12”、“紫色”
,该怎么办?如果添加一个“Bob”、“5/10”、“黄色”
会不会仍然显示Bob?修改代码以解释所有这些是很容易的,但是规范在如何工作的细节上是模糊的。我测试了上一个sql,它不起作用尝试-插入一些表值('Mark','7/5','yellow')我测试了上一个sql,它不起作用尝试-插入一些表值('Mark','7/5','yellow'))
Name Birthday
Bob 7/18
Bob 7/18
Mark 5/10
Mark 7/5
Sue 2/1
Joe 1/14
Joe 1/14
Joe 1/2
Jeff 9/16
Jeff 3/20
Jeff 6/13
[...]
select
NAME
FROM (select
NAME
FROM YourTable
GROUP BY Name,Birthday
HAVING Count(Name)=1
) dt
GROUP BY Name
HAVING COUNT(Name)>1
DECLARE @YourTable table (name varchar(10),Birthday varchar(10), FavoriteColor varchar(10))
INSERT @YourTable VALUES ('Bob' , '7/18' , 'Blue')
INSERT @YourTable VALUES ('Bob' , '7/18' , 'Green')
INSERT @YourTable VALUES ('Mark' , '5/10' , 'Blue')
INSERT @YourTable VALUES ('Mark' , '7/5' , 'Green')
select
NAME
FROM (select
NAME
FROM @YourTable
GROUP BY Name,Birthday
HAVING Count(Name)=1
) dt
GROUP BY Name
HAVING COUNT(Name)>1
NAME
----------
Mark
SELECT name FROM table_xyz
GROUP BY Name, Birthday
HAVING count(*) = 1
SELECT DISTINCT
T1.name
FROM
Some_Table AS T1
WHERE
EXISTS (SELECT *
FROM Some_Table T2
WHERE T2.name = T1.name AND
T2.birthday <> T1.birthday)
SELECT DISTINCT
T1.name
FROM
Some_Table AS T1
INNER JOIN Some_Table AS T2 ON
T2.name = T1.name AND
T2.birthday <> T1.birthday
SELECT
T1.name
FROM
Some_Table AS T1
GROUP BY
T1.name
HAVING
MAX(birthday) <> MIN(birthday)
SELECT
Name
FROM
yourTable
GROUP BY
name
HAVING
COUNT(DISTINCT birthday) > 1