2015-03-25 5 views
0

Я использую SQL, и мне трудно найти правильный синтаксис для запуска определенного запроса. Я пытаюсь изучить большой объем данных, поэтому мне нужно убедиться, что я получаю это право.SQL Query COUNT (Distinct

Моя таблица выглядит ниже.

Table1

Column 1 . Column 2 
1234  . A 
1245  . B 
1234  . A 
1256  . C 
1234  . A 

Я хочу, чтобы иметь возможность написать простой запрос, который только дает мне те, в колонке 1, которые появляются более чем в два раза, но по-прежнему имеют свои значения, а не заменяют его другим числом (фактические суммы будет отличаться, но это самый простой).

Я думал об использовании Count (различимо, но я не смог заставить его работать. Любые идеи?

+0

так что вы пробовали? – jfun

+1

Каковы ожидаемые результаты для этого примера данных –

+0

, расскажите нам немного больше о базе данных, которую вы используете, mysql, mssql, oracle, mongodb. – gaby

ответ

0

Я не уверен, что «по-прежнему имеет то же значение, а не заменять его с разное количество»означает, но, возможно, это SQL является то, что вам нужно:

select * 
from Table1 
where Column1 in (
    select Column1 
    from Table1 
    group by Column1 
    having count(*) > 2 
); 

Здесь он работает в скрипкой: http://sqlfiddle.com/#!6/4b443/1

0

это будет работать наверняка

select column1, column2 from table where column1 in (select column1 
        from table1 
        group by column1 
        having count(column1) >=2) 
0

Если я правильно понимаю:

select column1 
from table t 
group by column 1 
having count(*) > 2 and 
     min(column2) = max(column2); 

Это получает значения из column1, которые появляются более чем в два раза, но там, где все строки имеют одинаковое значение для column2.