0

私はテーブルを持っています(以下に簡略化されています)

|company|name |age|
| 1     |  a  | 3 | 
| 1     |  a  | 3 | 
| 1     |  a  | 2 | 
| 2     |  b  | 8 | 
| 3     |  c  | 1 | 
| 3     |  c  | 1 | 

さまざまな理由から、age 列は各企業で同じにする必要があります。このテーブルを更新している別のプロセスがあり、時々誤った年齢が入力されます。会社 1 の場合、年齢は常に 3 である必要があります。

年齢のミスマッチがある会社を知りたい。

私はこれをやった

select company, name age from table group by company, name, age

しかし、年齢が異なる行を取得する方法がわかりません。このテーブルは幅が広く、列がたくさんあるので、実際に目で見ることはできません。

誰でも助けることができますか?

ありがとう

4

3 に答える 3

3

You should not be including age in the group by clause.

SELECT  company
FROM    tableName
GROUP   BY company, name
HAVING  COUNT(DISTINCT age) <> 1
于 2013-09-29T21:01:17.373 に答える
0

会社だけでなく、「年齢が異なるを取得する方法」について言及したので:

まだ存在しない場合は、一意の行 ID (主キー) を追加します。と呼びましょうid

次に、する

select id from table 
where company in 
    (select company from table 
    group by company 
    having count(distinct age)>1)
于 2013-09-29T21:05:37.227 に答える