1

以下に示すスキーマを持つテーブルがあります

EmpID,MachineID,Timestamp
    1,        A,01-Nov-13
    2,        A,02-Nov-13
    3,        C,03-Nov-13
    1,        B,02-Nov-13
    1,        C,04-Nov-13
    2,        B,03-Nov-13
    3,        A,02-Nov-13

望ましい出力:

EmpID,MachineID
    1,        A
    1,        B
    1,        C
    2,        A
    2,        B
    3,        A
    3,        C

つまり、基本的には、特定の期間に複数のマシンを使用した Emp を見つけたいと考えています。

私が使用しているクエリは

select EmpID,count(distinct(MachineID)) from table 
where Timestamp between '01-NOV-13' AND '07-NOV-13'
group by EmpID having count(distinct(MachineID)) > 1
order by count(distinct(MachineID)) desc;

このクエリには、次のような出力が表示されます

EmpID,count(distinct(MachineID))
    1,                        3
    2,                        2
    3,                        2   

私の質問で上記のように出力を取得するために変更を加えるのを手伝ってくれる人はいますか。

4

3 に答える 3

1
   SELECT * FROM
        (SELECT DISTINCT(EmpID),COUNT(*) AS NumEMP
        from TableA
        WHERE Timestamp between '01-NOV-13' AND '07-NOV-13'
        group by EmpID 
        order by EmpID
        )
   WHERE NumEmp >= 1
于 2016-08-31T18:10:06.137 に答える