2011-02-10 3 views
1

Я пытаюсь сделать что-то вроде просто.Выберите ID, где Таблица Row Count = 1

Я хочу вернуть значение столбца (ID) из таблицы человека, где количество строк в людях = 1.

Так что-то вроде:

SELECT Person.Id 
FROM (select Count(*) from Person Having Count(*)=1); 

но не работает .. Любой помощь очень ценится.

Джо

+0

Не могли бы вы перефразировать как требование или вопрос более высокого уровня: ваше английское объяснение в основном говорит в SQL. Кажется, вы говорите, что хотите выбрать идентификатор человека, где есть только один человек? Что, если их два? Это не имеет никакого смысла, поэтому некоторые дополнительные сведения помогут нам ответить на этот вопрос. –

+0

Стоит добавить, что большинство ответов предполагает, что ваша таблица Person может иметь дубликаты с тем же идентификатором, что явно плохо. Надеюсь, это не то, о чем вы спрашиваете? –

+0

Спасибо Kieren, там не будет дубликатов –

ответ

0
select person.id from person where ((select count(*) from person) = 1) 

вы получите ноль, если таблица пуста или имеет более одной строки.

0

Вы пытаетесь найти дубликаты идентификаторов?

SELECT ID FROM Person p1 WHERE (SELECT COUNT(*) FROM Person p2 WHERE p1.ID = p2.ID) > 1 
1

Простой:

select id from (
    select p.id, count(1) cnt 
    from Person p 
    group by p.id 
) 
where cnt = 1 

домашнее задание? ;)

+0

Я lol'd, потому что «домашняя работа ?;)" – Paramone

0

Попробуйте это:

выбрать Person.Id от человека группы по Person.Id имея COUNT (*) = 1