sql >> データベース >  >> RDS >> Oracle

ORACLE SQL Group By STILL Guplicates

    CREATIONDATEが日付データ型の場合、秒までの時間要素が含まれます。最も低いものを探しているインシデントIDが正確な時刻になる可能性はほとんどありません。日付をISO日付にフォーマットすると、GROUPBYは時差を無視します。

    SELECT TO_CHAR(MIN(I.INCIDENTID))      AS "Incident ID",
              to_char(I.CREATIONDATE, 'yyyy-mm-dd') AS "Creation Date",
              M.MESSAGESUBJECT                AS "Email Subject",
              MO.IPADDRESS                    AS "IP Address",
              MO.DOMAINUSERNAME               AS "Login ID",
              MO.ENDPOINTMACHINENAME          AS "Computer Name"
       FROM        MESSAGE M 
       LEFT JOIN   INCIDENT I 
       ON          M.MESSAGESOURCE = I.MESSAGESOURCE 
       AND         M.MESSAGEID = I.MESSAGEID
       AND         M.MESSAGEDATE    = I.MESSAGEDATE 
       LEFT JOIN   MESSAGEORIGINATOR MO
       ON          M.MESSAGEORIGINATORID = MO.MESSAGEORIGINATORID
       LEFT JOIN   MESSAGEEXT ME
       ON          ME.MESSAGEID = M.MESSAGEID
       LEFT JOIN   INCIDENTSTATUS S
       ON          S.INCIDENTSTATUSID = I.INCIDENTSTATUSID
       LEFT JOIN   CUSTOMATTRIBUTESRECORD C
       ON          C.CUSTOMATTRIBUTESRECORDID = I.CUSTOMATTRIBUTESRECORDID                    
       GROUP BY    to_char(I.CREATIONDATE, 'yyyy-mm-dd') 
                   M.MESSAGESUBJECT,
                   MO.IPADDRESS,
                   MO.DOMAINUSERNAME,
                   MO.ENDPOINTMACHINENAME
    



    1. エラーの取得:「SERVER_IP」でMySQLサーバーに接続できません(99)

    2. SQLテーブルの作成中に制約を作成する他の方法はありますか?

    3. PostgreSQLまたはOracleで日付順に並べ替える方法

    4. 条件付きの行に選択権限を付与する