рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЗ рдЖрдгрд┐ рд╡рд╛рдЪрддреЗ

рдмреЕрд▓рдиреНрд╕рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рддреЗ рдЖрдгрд┐ рд╡рд╛рдЪрддреЗ
рдорд╛рдЧреАрд▓ рдордзреНрдпреЗ рд▓реЗрдЦ рдореА рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдкреНрд░рдорд╛рдгреЗ рдЯреЗрдмрд▓реНрд╕ рдЖрдгрд┐ рдлреАрд▓реНрдбреНрд╕ рдРрд╡рдЬреА рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рдЖрдзрд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рд╕рдВрдХрд▓реНрдкрдирд╛ рдЖрдгрд┐ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ. рдпрд╛рдиреЗ рд╢рд╛рд╕реНрддреНрд░реАрдп рдкрджреНрдзрддреАрдкреЗрдХреНрд╖рд╛ рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдЪреЗ рдлрд╛рдпрджреЗ рджрд░реНрд╢рд╡рд┐рдгрд╛рд░реА рдЕрдиреЗрдХ рдЙрджрд╛рд╣рд░рдгреЗ рджрд┐рд▓реА рдЖрд╣реЗрдд. рдЕрдиреЗрдХрд╛рдВрдирд╛ рддреЗ рдкреБрд░реЗрд╕реЗ рдкрдЯрд▓реЗ рдирд╛рд╣реАрдд.

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рд╣реЗ рджрд░реНрд╢рд╡рд┐рддреЛ рдХреА рд╣реА рд╕рдВрдХрд▓реНрдкрдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд▓реЙрдЬрд┐рдХрдордзреНрдпреЗ рдХреЛрдгрддрд╛рд╣реА рдмрджрд▓ рди рдХрд░рддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд▓реЗрдЦрди рдЖрдгрд┐ рд╡рд╛рдЪрди рддреНрд╡рд░реАрдд рдЖрдгрд┐ рд╕реЛрдпреАрд╕реНрдХрд░рдкрдгреЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдХрд╢реА рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЖрдзреБрдирд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдбреАрдмреАрдПрдордПрд╕ (рд╡рд┐рд╢реЗрд╖рддрдГ рдУрд░реЕрдХрд▓ рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡реНрд╣рд░) рдордзреНрдпреЗ рдЕрд╢реАрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рдореА рд╣реЗ рджрд░реНрд╢рд╡рд┐рддреЛ рдХреА рддреНрдпрд╛рдВрдиреА рдЬреЗ рдХрд╛рд╣реА рдХреЗрд▓реЗ рддреЗ рд╕реМрдореНрдпрдкрдгреЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░ рддреЗ рдлрд╛рд░рд╕реЗ рдЪрд╛рдВрдЧрд▓реЗ рдЭрд╛рд▓реЗ рдирд╛рд╣реА.

рд╡рд░реНрдгрди

рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗ, рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдореА рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рд╡рд░реНрдгрди рд╕реБрд░реВ рдХрд░реЗрди. рд╕рдордЬрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗ рд╡рд┐рднрд╛рдЧрд╛рдВрдЪреА рдпрд╛рджреА рддреНрдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдПрдХреВрдг рдкрдЧрд╛рд░ рджреЗрдИрд▓.

рдлрдВрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕реЗрд▓:

CLASS Department тАШ╨Ю╤В╨┤╨╡╨╗тАЩ;
name тАШ╨Э╨░╨╕╨╝╨╡╨╜╨╛╨▓╨░╨╜╨╕╨╡тАЩ = DATA STRING[100] (Department);

CLASS Employee тАШ╨б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║тАЩ;
department тАШ╨Ю╤В╨┤╨╡╨╗тАЩ = DATA Department (Employee);
salary тАШ╨Ч╨░╤А╨┐╨╗╨░╤В╨░тАЩ =  DATA NUMERIC[10,2] (Employee);

countEmployees тАШ╨Ъ╨╛╨╗-╨▓╨╛ ╤Б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║╨╛╨▓тАЩ (Department d) = 
    GROUP SUM 1 IF department(Employee e) = d;
salarySum тАШ╨б╤Г╨╝╨╝╨░╤А╨╜╨░╤П ╨╖╨░╤А╨┐╨╗╨░╤В╨░тАЩ (Department d) = 
    GROUP SUM salary(Employee e) IF department(e) = d;

SELECT name(Department d), countEmployees(d), salarySum(d);

рдХреЛрдгрддреНрдпрд╛рд╣реА DBMS рдордзреНрдпреЗ рд╣реА рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЬрдЯрд┐рд▓рддрд╛ рд╕рдорддреБрд▓реНрдп рдЕрд╕реЗрд▓ O (рдХрд░реНрдордЪрд╛рд▒реНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛)рдХрд╛рд░рдг рдпрд╛ рдЧрдгрдиреЗрд╕рд╛рдареА рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреЗ рд╕рдВрдкреВрд░реНрдг рдЯреЗрдмрд▓ рд╕реНрдХреЕрди рдХрд░рдгреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╡рд┐рднрд╛рдЧрд╛рдиреБрд╕рд╛рд░ рддреНрдпрд╛рдВрдЪреЗ рдЧрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдпреЛрдЬрдиреЗрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдХрд╛рд╣реА рд▓рд╣рд╛рди (рд╡рд┐рднрд╛рдЧрд╛рдкреЗрдХреНрд╖рд╛ рдмрд░реЗрдЪ рдХрд░реНрдордЪрд╛рд░реА рдЖрд╣реЗрдд рдЕрд╕реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡рд╛рдЯрддреЗ) рдкреВрд░рдХ рджреЗрдЦреАрд▓ рдЕрд╕рддреАрд▓. рдУ (рдХрд░реНрдордЪрд╛рд░реНтАНрдпрд╛рдВрдЪреА рд▓реЙрдЧ рд╕рдВрдЦреНрдпрд╛) рдХрд┐рдВрд╡рд╛ рдУ (рд╡рд┐рднрд╛рдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛) рдЧреНрд░реБрдкрд┐рдВрдЧ рд╡рдЧреИрд░реЗрд╕рд╛рдареА.

рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдУрд╡реНрд╣рд░рд╣реЗрдб рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ рдмрджрд▓рдгрд╛рд░ рдирд╛рд╣реА.

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдордзреНрдпреЗ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ DBMS рдПрдХ рд╕рдмрдХреНрд╡реЗрд░реА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░реЗрд▓ рдЬреА рд╡рд┐рднрд╛рдЧрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдореВрд▓реНрдпрд╛рдВрдЪреА рдЧрдгрдирд╛ рдХрд░реЗрд▓ рдЖрдгрд┐ рдирдВрддрд░ рдирд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рднрд╛рдЧ рдЯреЗрдмрд▓рд╕рд╣ рд╕рд╛рдореАрд▓ рд╡реНрд╣рд╛. рддрдерд╛рдкрд┐, рдкреНрд░рддреНрдпреЗрдХ рдлрдВрдХреНрд╢рдирд╕рд╛рдареА, рдШреЛрд╖рд┐рдд рдХрд░рддрд╛рдирд╛, рд╡рд┐рд╢реЗрд╖ MATERIALIZED рдорд╛рд░реНрдХрд░ рд╕реЗрдЯ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рд╕рд┐рд╕реНрдЯрдо рдЕрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рдлрдВрдХреНрд╢рдирд╕рд╛рдареА рдЖрдкреЛрдЖрдк рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдлреАрд▓реНрдб рддрдпрд╛рд░ рдХрд░реЗрд▓. рдлрдВрдХреНрд╢рдирдЪреА рд╡реНрд╣реЕрд▓реНрдпреВ рдмрджрд▓рддрд╛рдирд╛, рддреНрдпрд╛рдЪ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдлреАрд▓реНрдбрдЪреА рд╡реНрд╣реЕрд▓реНрдпреВ рджреЗрдЦреАрд▓ рдмрджрд▓рддреЗ. рдпрд╛ рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдирд╛, рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлреАрд▓реНрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓.

рд╡рд┐рд╢реЗрд╖рддрдГ, рдЬрд░ рддреБрдореНрд╣реА рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА MATERIALIZED рд╕реЗрдЯ рдХреЗрд▓реЗ рдЕрд╕реЗрд▓ рдХрд░реНрдордЪрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ ╨╕ рдкрдЧрд╛рд░рд╛рдЪреА рд░рдХреНрдХрдо, рдирдВрддрд░ рд╡рд┐рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рдпрд╛рджреАрд╕рд╣ рдЯреЗрдмрд▓рдордзреНрдпреЗ рджреЛрди рдлреАрд▓реНрдб рдЬреЛрдбрд▓реЗ рдЬрд╛рддреАрд▓, рдЬреЗ рдХрд░реНрдордЪрд╛рд░реНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреЗ рдПрдХреВрдг рдкрдЧрд╛рд░ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреАрд▓. рдЬреЗрд╡реНрд╣рд╛ рдЬреЗрд╡реНрд╣рд╛ рдХрд░реНрдордЪрд╛рд░реА, рддреНрдпрд╛рдВрдЪреЗ рдкрдЧрд╛рд░ рдХрд┐рдВрд╡рд╛ рд╡рд┐рднрд╛рдЧ рд╕рдВрд▓рдЧреНрдирддреЗрдордзреНрдпреЗ рдмрджрд▓ рд╣реЛрддреЛ рддреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рдЖрдкреЛрдЖрдк рдпрд╛ рдлреАрд▓реНрдбрдЪреА рдореВрд▓реНрдпреЗ рдмрджрд▓рддреЗ. рд╡рд░реАрд▓ рдХреНрд╡реЗрд░реА рдпрд╛ рдлреАрд▓реНрдбрдордзреНрдпреЗ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрд▓ рдЖрдгрд┐ рдордзреНрдпреЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рдИрд▓ рдУ (рд╡рд┐рднрд╛рдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛).

рдирд┐рд░реНрдмрдВрдз рдХрд╛рдп рдЖрд╣реЗрдд? рдлрдХреНрдд рдПрдХ рдЧреЛрд╖реНрдЯ: рдЕрд╢рд╛ рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдЗрдирдкреБрдЯ рдореВрд▓реНрдпрд╛рдВрдЪреА рдорд░реНрдпрд╛рджрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪреЗ рдореВрд▓реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЕрдиреНрдпрдерд╛, рдПрдХ рд╕рд╛рд░рдгреА рддрдпрд╛рд░ рдХрд░рдгреЗ рдЕрд╢рдХреНрдп рд╣реЛрдИрд▓ рдЬреЗ рддрд┐рдЪреА рд╕рд░реНрд╡ рдореВрд▓реНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ, рдХрд╛рд░рдг рдЕрд╕реАрдо рд╕рдВрдЦреНрдпреЗрдЪреНрдпрд╛ рдкрдВрдХреНрддреА рдЕрд╕рд▓реЗрд▓реЗ рдЯреЗрдмрд▓ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА.

рдЙрджрд╛рд╣рд░рдг:

employeesCount тАШ╨Ъ╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛ ╤Б╨╛╤В╤А╤Г╨┤╨╜╨╕╨║╨╛╨▓ ╤Б ╨╖╨░╤А╨┐╨╗╨░╤В╨╛╨╣ > NтАЩ (Department d, NUMERIC[10,2] N) = 
    GROUP SUM salary(Employee e) IF department(e) = d AND salary(e) > N;

рд╣реЗ рдлрдВрдХреНрд╢рди N рдЪреНрдпрд╛ рдЕрдирдВрдд рдореВрд▓реНрдпрд╛рдВрд╕рд╛рдареА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреЛрдгрддреЗрд╣реА рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдпреЛрдЧреНрдп рдЖрд╣реЗ). рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рддреНрдпрд╛рд╡рд░ рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рдЯрд╛рдХреВ рд╢рдХрдд рдирд╛рд╣реА. рддрд░ рд╣реА рддрд╛рд░реНрдХрд┐рдХ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ, рддрд╛рдВрддреНрд░рд┐рдХ рдирд╛рд╣реА (рдореНрд╣рдгрдЬреЗ рдЖрдореНрд╣реА рддреА рдЕрдВрдорд▓рд╛рдд рдЖрдгреВ рд╢рдХрд▓реЛ рдирд╛рд╣реА рдореНрд╣рдгреВрди рдирд╛рд╣реА). рдЕрдиреНрдпрдерд╛, рдХреЛрдгрддреЗрд╣реА рдирд┐рд░реНрдмрдВрдз рдирд╛рд╣реАрдд. рддреБрдореНрд╣реА рдЧреНрд░реБрдкрд┐рдВрдЧ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ, AND рдЖрдгрд┐ OR, PARTITION, recursion рдЗрддреНрдпрд╛рджреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдорд╛рдЧреАрд▓ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ 2.2 рдордзреНрдпреЗ, рддреБрдореНрд╣реА рджреЛрдиреНрд╣реА рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ MATERIALIZED рдЯрд╛рдХреВ рд╢рдХрддрд╛:

bought '╨Ъ╤Г╨┐╨╕╨╗' (Customer c, Product p, INTEGER y) = 
    GROUP SUM sum(Detail d) IF 
        customer(order(d)) = c AND 
        product(d) = p AND 
        extractYear(date(order(d))) = y MATERIALIZED;
rating '╨а╨╡╨╣╤В╨╕╨╜╨│' (Customer c, Product p, INTEGER y) = 
    PARTITION SUM 1 ORDER DESC bought(c, p, y), p BY c, y MATERIALIZED;
SELECT contactName(Customer c), name(Product p) WHERE rating(c, p, 1997) < 3;

рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рддрдГ рдЯрд╛рдЗрдк рдХреАрд╕рд╣ рдПрдХ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░реЗрд▓ рдЧреНрд░рд╛рд╣рдХ, рдЙрддреНрдкрд╛рджрди ╨╕ рдЗрдВрдЯрд┐рдЧреЗрд░, рддреНрдпрд╛рдд рджреЛрди рдлреАрд▓реНрдб рдЬреЛрдбреЗрд▓ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрджрд▓рд╛рдВрд╕рд╣ рдлреАрд▓реНрдб рдореВрд▓реНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░реЗрд▓. рдЬреЗрд╡реНрд╣рд╛ рдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рдирд╛ рдкреБрдвреАрд▓ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдВрдЪреА рдЧрдгрдирд╛ рдХреЗрд▓реА рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА, рдЙрд▓рдЯ рдореВрд▓реНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдлреАрд▓реНрдбрдордзреВрди рд╡рд╛рдЪрд▓реА рдЬрд╛рддреАрд▓.

рдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рддреБрдореНрд╣реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреНрд░рд╢реНрдирд╛рдВрдордзреАрд▓ рдкреБрдирд░рд╛рд╡реГрддреНрддреА (CTE) рдкрд╛рд╕реВрди рдореБрдХреНрдд рд╣реЛрдК рд╢рдХрддрд╛. рд╡рд┐рд╢реЗрд╖рддрдГ, рдореВрд▓/рдкрд╛рд▓рдХ рдирд╛рддреЗрд╕рдВрдмрдВрдз рд╡рд╛рдкрд░реВрди рд╡реГрдХреНрд╖ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдЧрдЯрд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛ (рдкреНрд░рддреНрдпреЗрдХ рдЧрдЯрд╛рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдкрд╛рд▓рдХрд╛рдВрдЪреА рд▓рд┐рдВрдХ рдЕрд╕рддреЗ):

parent = DATA Group (Group);

рдлрдВрдХреНрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ, рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд▓реЙрдЬрд┐рдХ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

level (Group child, Group parent) = RECURSION 1l IF child IS Group AND parent == child
                                                             STEP 2l IF parent == parent($parent);
isParent (Group child, Group parent) = TRUE IF level(child, parent) MATERIALIZED;

рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдкрд╛рд╕реВрди рдкрд╛рд▓рдХ рдЖрд╣реЗ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдирдВрддрд░ рджреЛрди рдХреА (рдЧрдЯ) рдЕрд╕рд▓реЗрд▓реА рдПрдХ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЬреНрдпрд╛рдордзреНрдпреЗ рдлреАрд▓реНрдб рдкрд╛рд▓рдХ рдЖрд╣реЗ рдкрд╣рд┐рд▓реА рдХрд┐рд▓реНрд▓реА рджреБрд╕рд▒реНрдпрд╛рдЪреЗ рдореВрд▓ рдЕрд╕реЗрд▓ рддрд░рдЪ рддреА рдЦрд░реА рдЕрд╕реЗрд▓. рдпрд╛ рд╕рд╛рд░рдгреАрддреАрд▓ рдиреЛрдВрджреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдЭрд╛рдбрд╛рдЪреНрдпрд╛ рд╕рд░рд╛рд╕рд░реА рдЦреЛрд▓реАрдиреЗ рдЧреБрдгрд╛рдХрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЧрдЯрд╛рдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдЗрддрдХреА рдЕрд╕реЗрд▓. рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧрдЯрд╛рдЪреНрдпрд╛ рд╡рдВрд╢рдЬрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рд╣реЗ рдХрд╛рд░реНрдп рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛:

childrenCount (Group g) = GROUP SUM 1 IF isParent(Group child, g);

SQL рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ CTE рдирд╕реЗрд▓. рддреНрдпрд╛рдРрд╡рдЬреА рдПрдХ рд╕рд╛рдзрд╛ GROUP BY рдЕрд╕реЗрд▓.

рдпрд╛ рдпрдВрддреНрд░рдгреЗрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд╣рдЬрдкрдгреЗ рд╡рд┐рдХреГрдд рдХрд░реВ рд╢рдХрддрд╛:

CLASS Order '╨Ч╨░╨║╨░╨╖';
date '╨Ф╨░╤В╨░' = DATA DATE (Order);

CLASS OrderDetail '╨б╤В╤А╨╛╨║╨░ ╨╖╨░╨║╨░╨╖╨░';
order '╨Ч╨░╨║╨░╨╖' = DATA Order (OrderDetail);
date '╨Ф╨░╤В╨░' (OrderDetail d) = date(order(d)) MATERIALIZED INDEXED;

рдлрдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рддрд╛рдирд╛ рддрд╛рд░реАрдЦ рдСрд░реНрдбрд░ рд▓рд╛рдЗрдирд╕рд╛рдареА, рдЬреНрдпрд╛ рдлреАрд▓реНрдбрд╕рд╛рдареА рдЗрдВрдбреЗрдХреНрд╕ рдЖрд╣реЗ рддреЗ рдЯреЗрдмрд▓рдордзреВрди рдСрд░реНрдбрд░ рд▓рд╛рдИрдиреНрд╕рд╕рд╣ рд╡рд╛рдЪрд▓реЗ рдЬрд╛рдИрд▓. рдЬреЗрд╡реНрд╣рд╛ рдСрд░реНрдбрд░рдЪреА рддрд╛рд░реАрдЦ рдмрджрд▓рддреЗ, рддреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рддрдГрдЪ рдУрд│реАрддреАрд▓ рдбрд┐рдиреЛрд░реНрдорд▓рд╛рдЗрдЬреНрдб рддрд╛рд░рдЦреЗрдЪреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░реЗрд▓.

рдлрд╛рдпрджреЗ

рд╣реА рд╕рдВрдкреВрд░реНрдг рдпрдВрддреНрд░рдгрд╛ рдХрд╢рд╛рд╕рд╛рдареА рдЖрд╣реЗ? рдХреНрд▓рд╛рд╕рд┐рдХ DBMS рдордзреНрдпреЗ, рдкреБрдирд░реНрд▓реЗрдЦрди рдХреНрд╡реЗрд░реАрд╢рд┐рд╡рд╛рдп, рд╡рд┐рдХрд╛рд╕рдХ рдХрд┐рдВрд╡рд╛ DBA рдлрдХреНрдд рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрджрд▓реВ рд╢рдХрддрд╛рдд, рдЖрдХрдбреЗрд╡рд╛рд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рдкреНрд▓реЕрдирд░рд▓рд╛ рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛рдпрдЪреЗ рддреЗ рд╕рд╛рдВрдЧреВ рд╢рдХрддрд╛рдд (рдЖрдгрд┐ HINTs рдлрдХреНрдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMS рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗрдд). рддреНрдпрд╛рдВрдиреА рдХрд┐рддреАрд╣реА рдкреНрд░рдпрддреНрди рдХреЗрд▓реЗ рддрд░реА рддреЗ рдордзреАрд▓ рд▓реЗрдЦрд╛рддреАрд▓ рдкрд╣рд┐рд▓реА рдХреНрд╡реЗрд░реА рдкреВрд░реНрдг рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реАрдд рдУ (рд╡рд┐рднрд╛рдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛) рдХреНрд╡реЗрд░реА рди рдмрджрд▓рддрд╛ рдХрд┐рдВрд╡рд╛ рдЯреНрд░рд┐рдЧрд░ рдЬреЛрдбрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп. рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпреЛрдЬрдиреЗрдд, рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЖрдгрд┐ рдХреЛрдгрддреЗ рдПрдХрддреНрд░реАрдХрд░рдг рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА. рд╣реЗ рд╕рд░реНрд╡ рдлреНрд▓рд╛рдпрд╡рд░, рдереЗрдЯ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рд╣реЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ. рдХрд╛рд╣реА рд▓реЛрдХ рдереЗрдЯ рд╣рд╛рддрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХрд╛рдорд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛рдд. рддреНрдпрд╛рдВрдирд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рдЬрдЯрд┐рд▓рддрд╛, рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдпреЛрдЬрдирд╛, рдЬреЛрдбрдгреНрдпрд╛рдЪреЗ рдкреНрд░рдХрд╛рд░ рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдХреЛрдгрддреЗрд╣реА рддрд╛рдВрддреНрд░рд┐рдХ рдШрдЯрдХ рд╕рдордЬрдд рдирд╛рд╣реАрдд. рд╣реЗ рд▓реЛрдХ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╕рд╛рдп рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЖрд╣реЗрдд. рдордЧ, рд╣реЗ рд╕рд░реНрд╡ рдЪрд╛рдЪрдгреА рдХрд┐рдВрд╡рд╛ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдЬрд╛рддреЗ. рджреАрд░реНрдШрдХрд╛рд│ рдЪрд╛рд▓рдгрд╛рд▒реНрдпрд╛ рдХреНрд╡реЗрд░реАрдЪреЗ рд▓реЙрдЧрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рддреЗ. рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреА рджреАрд░реНрдШ рдХреНрд╡реЗрд░реА рдЖрдврд│рд▓реА, рддреЗрд╡реНрд╣рд╛ рдЗрддрд░ рд▓реЛрдХ (рдЕрдзрд┐рдХ рддрд╛рдВрддреНрд░рд┐рдХ - рдореВрд▓рдд: DBA) рдХрд╛рд╣реА рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдлрдВрдХреНрд╢рдирд╡рд░ MATERIALIZED рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд╛рдд. рд╣реЗ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧ рдереЛрдбреЗ рдХрдореА рдХрд░рддреЗ (рдХрд╛рд░рдг рддреНрдпрд╛рд▓рд╛ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдЕрддрд┐рд░рд┐рдХреНрдд рдлреАрд▓реНрдб рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ). рддрдерд╛рдкрд┐, рдХреЗрд╡рд│ рдпрд╛ рдХреНрд╡реЗрд░реАрд▓рд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдЧрддреА рджрд┐рд▓реА рдЬрд╛рдд рдирд╛рд╣реА рддрд░ рд╣реЗ рдХрд╛рд░реНрдп рд╡рд╛рдкрд░рдгрд╛рд░реЗ рдЗрддрд░ рд╕рд░реНрд╡ рджреЗрдЦреАрд▓. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдХреЛрдгрддреЗ рдХрд╛рд░реНрдп рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЖрдгрд╛рдпрдЪреЗ рд╣реЗ рдард░рд╡рдгреЗ рддреБрд▓рдиреЗрдиреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рджреЛрди рдореБрдЦреНрдп рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕: рд╕рдВрднрд╛рд╡реНрдп рдЗрдирдкреБрдЯ рдореВрд▓реНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ (рд╕рдВрдмрдВрдзрд┐рдд рд╕рд╛рд░рдгреАрдордзреНрдпреЗ рдХрд┐рддреА рд░реЗрдХреЙрд░реНрдб рдЕрд╕рддреАрд▓) рдЖрдгрд┐ рдЗрддрд░ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рддреЗ рдХрд┐рддреА рд╡реЗрд│рд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.

рдЕреЕрдирд╛рд▓реЙрдЧ

рдЖрдзреБрдирд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдбреАрдмреАрдПрдордПрд╕рдордзреНрдпреЗ рд╕рдорд╛рди рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗрдд: рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢ (рдУрд░реЗрдХрд▓) рдЖрдгрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп (рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡реНрд╣рд░) рд╕рд╣ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ. PostgreSQL рдордзреНтАНрдпреЗ, рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рджреГрд╢реНтАНрдп рд╡реНтАНрдпрд╡рд╣рд╛рд░рд╛рдд рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рдпреЗрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдХреЗрд╡рд│ рд╡рд┐рдирдВрддреАрдиреБрд╕рд╛рд░ (рдЖрдгрд┐ рдЕрдЧрджреА рдХрдбрдХ рдирд┐рд░реНрдмрдВрдз рдЕрд╕рд▓реЗ рддрд░реАрд╣реА), рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рддреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рдд рдирд╛рд╣реА. рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдмрд░реНтАНрдпрд╛рдЪ рд╕рдорд╕реНрдпрд╛ рдЖрд╣реЗрдд рдЬреНрдпрд╛ рддреНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддрд╛рдд.

рдкреНрд░рдердо, рдЖрдкрдг рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдирд┐рдпрдорд┐рдд рджреГрд╢реНрдп рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕рдЪ рдЖрдкрдг рднреМрддрд┐рдХреАрдХрд░рдг рд╕рдХреНрд╖рдо рдХрд░реВ рд╢рдХрддрд╛. рдЕрдиреНрдпрдерд╛, рд╣реЗ рднреМрддрд┐рдХреАрдХрд░рдг рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд╡реАрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рджреГрд╢реНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдЙрд░реНрд╡рд░рд┐рдд рд╡рд┐рдирдВрддреНрдпрд╛ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрддреАрд▓. рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЬрд╕реЗ рдЖрд╣реЗ рддрд╕реЗ рд╕реЛрдбрд╛, рдкрд░рдВрддреБ рдЬрд░ рдХрд╛рд╣реА рдЖрдзреАрдЪ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдЕрд╕реЗрд▓ рддрд░ рддреЛ рдХрдореАрддрдХрдореА рдХреБрдЪрдХрд╛рдореА рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рдмрд░реНрдпрд╛рдЪ рдХреНрд╡реЗрд░реА рдиреЗрд╣рдореА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдд рдирд╛рд╣реАрдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреА рдкреБрдирд░реНрдЧрдгрдирд╛ рдХрд░рддрд╛рдд.

рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдирд┐рд░реНрдмрдВрдз рдЖрд╣реЗрдд:

рдУрд░реЕрдХрд▓

5.3.8.4 рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдмрдВрдз

рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдпрд╛рдЪреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ:

  • рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдордзреНрдпреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рди рд╣реЛрдгрд╛рд▒реНрдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрдЪреЗ рд╕рдВрджрд░реНрдн рдирд╕рд╛рд╡реЗрдд SYSDATE рдЖрдгрд┐ ROWNUM.
  • рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдордзреНрдпреЗ рд╕рдВрджрд░реНрдн рдирд╕рд╛рд╡реЗрдд RAW or LONG RAW рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░.
  • рддреНрдпрд╛рдд рдЕ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА SELECT рд╕реВрдЪреА рд╕рдмрдХреНрд╡реЗрд░реА.
  • рдпрд╛рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХрд╛рд░реНрдпреЗ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, RANK) рдордзреНрдпреЗ SELECT рдЦрдВрдб
  • рддреЗ рдЯреЗрдмрд▓рдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдК рд╢рдХрдд рдирд╛рд╣реА рдЬреНрдпрд╛рд╡рд░ рдП XMLIndex рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.
  • рддреНрдпрд╛рдд рдЕ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА MODEL рдЦрдВрдб
  • рддреНрдпрд╛рдд рдЕ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА HAVING рд╕рдмрдХреНрд╡реЗрд░реАрд╕рд╣ рдЦрдВрдб.
  • рддреНрдпрд╛рдордзреНрдпреЗ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд╡реЗрд░реА рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд ANY, ALLрдХрд┐рдВрд╡рд╛ NOT EXISTS.
  • рддреНрдпрд╛рдд рдЕ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА [START WITH тАж] CONNECT BY рдЦрдВрдб
  • рдпрд╛рдд рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд╛рдЗрдЯреНрд╕рд╡рд░ рдЕрдиреЗрдХ рддрдкрд╢реАрд▓ рд╕рд╛рд░рдгреНрдпрд╛ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд.
  • ON COMMIT рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдВрдордзреНрдпреЗ рджреВрд░рд╕реНрде рддрдкрд╢реАрд▓ рд╕рд╛рд░рдгреНрдпрд╛ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд.
  • рдиреЗрд╕реНрдЯреЗрдб рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЬрдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рдЬреЙрдЗрди рд╡реНрд╣реНрдпреВрдЬ рдЖрдгрд┐ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рдПрдЧреНрд░реАрдЧреЗрдЯ рд╡реНрд╣реНрдпреВрдЬ рдЕ GROUP BY рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛-рд╕рдВрдШрдЯрд┐рдд рд╕рд╛рд░рдгреАрдордзреВрди рдЦрдВрдб рдирд┐рд╡рдбреВ рд╢рдХрдд рдирд╛рд╣реА.

5.3.8.5 рдХреЗрд╡рд│ рд╕рд╛рдореАрд▓ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЬрд╡рд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢рд╡рд░ рдирд┐рд░реНрдмрдВрдз

рдХреЗрд╡рд│ рдЬреЙрдЗрдиреНрд╕рд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдВрд╕рд╛рдареА рдХреНрд╡реЗрд░реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдореБрдЪреНрдЪрдпрд╛рдВрдордзреНрдпреЗ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢рд╡рд░ рдЦрд╛рд▓реАрд▓ рдирд┐рд░реНрдмрдВрдз рдирд╛рд╣реАрдд:

  • рдкрд╛рд╕реВрди рд╕рд░реНрд╡ рдирд┐рд░реНрдмрдВрдз ┬лрдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрдмрдВрдз".
  • рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА GROUP BY рдЦрдВрдб рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░рд┐рдд.
  • рдордзреАрд▓ рд╕рд░реНрд╡ рдЯреЗрдмрд▓реНрд╕рдЪреНрдпрд╛ рд░реЛрд╡рд┐рдбреНрд╕ FROM рдордзреНрдпреЗ рдпрд╛рджреА рджрд┐рд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ SELECT рдХреНрд╡реЗрд░реАрдЪреА рдпрд╛рджреА.
  • рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд▓реЙрдЧ рдордзреАрд▓ рд╕рд░реНрд╡ рдмреЗрд╕ рдЯреЗрдмрд▓реНрд╕рд╕рд╛рдареА рд░реЛрд╡рд┐рдбреНрд╕рд╕рд╣ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ FROM рдХреНрд╡реЗрд░реАрдЪреА рдпрд╛рджреА.
  • рддреБрдореНрд╣реА рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреВрди рдПрдХ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рдЬреНрдпрд╛рдд рд╕рд╛рдзреНрдпрд╛ рдЬреЛрдбрдгреАрдордзреНрдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рд╕реНрддрдВрдн рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. SELECT рд╡рд┐рдзрд╛рди

рддрд╕реЗрдЪ, рддреБрдореНрд╣реА рдирд┐рд╡рдбрд▓реЗрд▓реА рд░реАрдлреНрд░реЗрд╢ рдкрджреНрдзрдд рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдо рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА рдЬрд░:

  • рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдмрд╛рд╣реНрдп рдЬреЛрдб рд╡рд╛рдкрд░рддреЗ рдЬреЗ рдЕрдВрддрд░реНрдЧрдд рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рд╡рд╛рдЧрддреЗ. рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдЕрд╕реЗ рдЬреЛрдб рдЕрд╕рд▓реНрдпрд╛рд╕, рдЕрдВрддрд░реНрдЧрдд рдЬреЛрдб рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛.
  • рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ SELECT рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЪреНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рдЕрдиреЗрдХ рдЯреЗрдмрд▓реНрд╕рдордзреАрд▓ рдХреЙрд▓рдореНрд╕рд╡рд░реАрд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдиреНрд╕ рдЕрд╕рддрд╛рдд.

5.3.8.6 рдПрдХрддреНрд░рд┐рддрдкрдгреЗ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЬрд╡рд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢рд╡рд░ рдирд┐рд░реНрдмрдВрдз

рдПрдХрддреНрд░рд┐рдд рдХрд┐рдВрд╡рд╛ рд╕рд╛рдореАрд▓ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдВрд╕рд╛рдареА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдирд┐рд░реНрдмрдВрдз рдЖрд╣реЗрдд:

рджреЛрдиреНрд╣реАрд╕рд╛рдареА рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ ON COMMIT рдЖрдгрд┐ ON DEMAND рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ, рддрдерд╛рдкрд┐ рдЦрд╛рд▓реАрд▓ рдирд┐рд░реНрдмрдВрдз рд▓рд╛рдЧреВ рд╣реЛрддрд╛рдд:

  • рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдордзреАрд▓ рд╕рд░реНрд╡ рдЯреЗрдмрд▓реНрд╕рдордзреНрдпреЗ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд▓реЙрдЧ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд▓реЙрдЧрдордзреНрдпреЗ рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
    • рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдордзреНрдпреЗ рд╕рдВрджрд░реНрднрд┐рдд рдЯреЗрдмрд▓рдордзреАрд▓ рд╕рд░реНрд╡ рд╕реНрддрдВрдн рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛.
    • рд╕рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ ROWID рдЖрдгрд┐ INCLUDING NEW VALUES.
    • рдирд┐рд░реНрджреЗрд╢реАрдд рдХрд░рд╛ SEQUENCE рдЬрд░ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдЗрдиреНрд╕рд░реНрдЯ/рдбрд╛рдпрд░реЗрдХреНрдЯ-рд▓реЛрдбреНрд╕, рдбрд┐рд▓реАрдЯ рдЖрдгрд┐ рдЕрдкрдбреЗрдЯреНрд╕рдЪреЗ рдорд┐рд╢реНрд░рдг рдЕрдкреЗрдХреНрд╖рд┐рдд рдЕрд╕реЗрд▓ рддрд░ рдХреНрд▓реЙрдЬ.

  • рдлрдХреНрдд SUM, COUNT, AVG, STDDEV, VARIANCE, MIN рдЖрдгрд┐ MAX рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢рд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд.
  • COUNT(*) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдПрдХреВрдг рдХрд╛рд░реНрдпреЗ рдХреЗрд╡рд│ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪрд╛ рд╕рд░реНрд╡рд╛рдд рдмрд╛рд╣реНрдп рднрд╛рдЧ рдореНрд╣рдгреВрди рдШрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореНрд╣рдгрдЬреЗ рд╕рдореБрдЪреНрдЪрдп рдЬрд╕реЗ рдХреА AVG(AVG(x)) or AVG(x)+ AVG(x) рдкрд░рд╡рд╛рдирдЧреА рдирд╛рд╣реА.
  • рдкреНрд░рддреНрдпреЗрдХ рдПрдХреВрдгрд╛рд╕рд╛рдареА рдЬрд╕реЗ рдХреА AVG(expr), рд╕рдВрдмрдВрдзрд┐рдд COUNT(expr) рдЙрдкрд╕реНрдерд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдУрд░реЕрдХрд▓ рдЕрд╢реА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ.
  • If VARIANCE(expr) or STDDEV(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ, COUNT(expr) рдЖрдгрд┐ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдУрд░реЕрдХрд▓ рдЕрд╢реА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ SUM(expr *expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ.
  • рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ SELECT рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реАрдордзреАрд▓ рд╕реНрддрдВрдн рдЕрдиреЗрдХ рдмреЗрд╕ рдЯреЗрдмрд▓рдордзреАрд▓ рд╕реНрддрдВрднрд╛рдВрд╕рд╣ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА. рдпрд╛рд╕рд╛рдареА рд╕рдВрднрд╛рд╡реНрдп рдЙрдкрд╛рдп рдореНрд╣рдгрдЬреЗ рдиреЗрд╕реНрдЯреЗрдб рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд╡рд╛рдкрд░рдгреЗ.
  • рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ SELECT рд╕реВрдЪреАрдордзреНрдпреЗ рд╕рд░реНрд╡ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ GROUP BY рд╕реНрддрдВрдн.
  • рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рджреВрд░рд╕реНрде рд╕рд╛рд░рдгреНрдпрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╛рд╣реА.
  • рдЖрдкрдг рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕ CHAR рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд▓реЙрдЧрдЪреНрдпрд╛ рдлрд┐рд▓реНрдЯрд░ рдХреЙрд▓рдореНрд╕рдордзреАрд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдорд╛рд╕реНрдЯрд░ рд╕рд╛рдЗрдЯрдЪреЗ рдХреЕрд░реЗрдХреНрдЯрд░ рд╕реЗрдЯреНрд╕ рдЖрдгрд┐ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд╕рд╛рд░рдЦреЗрдЪ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдЬрд░ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓рдкреИрдХреА рдПрдХ рдЕрд╕реЗрд▓, рддрд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢рд▓рд╛ рдлрдХреНрдд рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдбреАрдПрдордПрд▓ рдЗрдиреНрд╕рд░реНрдЯ рдЖрдгрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯ рд▓реЛрдбрд╡рд░ рд╕рдкреЛрд░реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
    • рд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ MIN or MAX рдПрдХреВрдг
    • рдЬреНрдпрд╛рдд рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ рдЖрд╣реЗрдд SUM(expr) рдкрдг рдирд╛рд╣реА COUNT(expr)
    • рди рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ COUNT(*)

    рдЕрд╢рд╛ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрд▓рд╛ рдЗрдиреНрд╕рд░реНрдЯ-рдУрдиреНрд▓реА рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рдореНрд╣рдгрддрд╛рдд.

  • рд╕рд╣ рдПрдХ рднреМрддрд┐рдХ рджреГрд╢реНрдп MAX or MIN рдбрд┐рд▓реАрдЯ рдХрд┐рдВрд╡рд╛ рдорд┐рд╢реНрд░рд┐рдд рдбреАрдПрдордПрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирдВрддрд░ рддреНрд╡рд░реАрдд рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ рдЬрд░ рддреНрдпрд╛рдд рдП рдирд╕реЗрд▓ WHERE рдЦрдВрдб
    рдбрд┐рд▓реАрдЯ рдХрд┐рдВрд╡рд╛ рдорд┐рд╢реНрд░рд┐рдд DML рдирдВрддрд░ рдХрдорд╛рд▓/рдорд┐рдирд┐рдЯ рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢рдордзреНрдпреЗ рдлрдХреНрдд-рдЗрдиреНрд╕рд░реНрдЯ рдХреЗрд╕ рд╕рд╛рд░рдЦреЗ рд╡рд░реНрддрди рдирд╕рддреЗ. рд╣реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдЧрдЯрд╛рдВрд╕рд╛рдареА рдХрдорд╛рд▓/рдорд┐рдирд┐рдЯ рдореВрд▓реНрдпреЗ рд╣рдЯрд╡рддреЗ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдореЛрдЬрддреЗ. рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдкреНрд░рднрд╛рд╡рд╛рдЪреА рдЬрд╛рдгреАрд╡ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдордзреНрдпреЗ рдирд╛рдорд╛рдВрдХрд┐рдд рджреГрд╢реНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╕рдмрдХреНрд╡реЗрд░реАрд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ FROM рдЦрдВрдб рддреНрд╡рд░реАрдд рд░реАрдлреНрд░реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬрд░ рджреГрд╢реНрдпреЗ рдкреВрд░реНрдгрдкрдгреЗ рд╡рд┐рд▓реАрди рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдХреЛрдгрддреА рджреГрд╢реНрдпреЗ рд╡рд┐рд▓реАрди рд╣реЛрддреАрд▓ рдпрд╛ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА, рдкрд╣рд╛ рдУрд░реЕрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ SQL тАЛтАЛрднрд╛рд╖рд╛ рд╕рдВрджрд░реНрдн.
  • рдХреЛрдгрддреЗрд╣реА рдмрд╛рд╣реНрдп рд╕рд╛рдореАрд▓ рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдирд┐рд╡рдбреА рдЕрд╕реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдордзреНрдпреЗ рд╕рд╛рдореАрд▓ рд╣реЛрдК рд╢рдХрддрд╛рдд WHERE рдЦрдВрдб
  • рдмрд╛рд╣реНрдп рдЬреЛрдбреНрдпрд╛рдВрд╕рд╣ рднреМрддрд┐рдХ рдПрдХрддреНрд░рд┐рдд рджреГрд╢реНрдпреЗ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдбреАрдПрдордПрд▓ рдЖрдгрд┐ рдереЗрдЯ рднрд╛рд░рд╛рдирдВрддрд░ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЕрд╕рддрд╛рдд, рдмрд╢рд░реНрддреЗ рдХреЗрд╡рд│ рдмрд╛рд╣реНрдп рд╕рд╛рд░рдгреА рд╕реБрдзрд╛рд░рд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЕрд╕реЗрд▓. рддрд╕реЗрдЪ, рдЖрддреАрд▓ рдЬреЙрдИрди рдЯреЗрдмрд▓рдЪреНрдпрд╛ рдЬреЙрдИрди рдХреЙрд▓рдорд╡рд░ рдЕрдирдиреНрдп рдорд░реНрдпрд╛рджрд╛ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬрд░ рдмрд╛рд╣реЗрд░реАрд▓ рдЬреЛрдб рдЕрд╕рддреАрд▓ рддрд░, рд╕рд░реНрд╡ рдЬреЛрдб рджреНрд╡рд╛рд░реЗ рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ ANDs рдЖрдгрд┐ рд╕рдорд╛рдирддрд╛ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (=) рдСрдкрд░реЗрдЯрд░.
  • рд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдВрд╕рд╛рдареА CUBE, ROLLUP, рдЧрдЯрдмрджреНрдз рд╕рдВрдЪ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдВрдЪреЗ рдПрдХрддреНрд░реАрдХрд░рдг, рдЦрд╛рд▓реАрд▓ рдирд┐рд░реНрдмрдВрдз рд▓рд╛рдЧреВ рд╣реЛрддрд╛рдд:
    • рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ SELECT рд╕реВрдЪреАрдордзреНрдпреЗ рдЧрдЯрдмрджреНрдз рднреЗрджрдХ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗ рдПрдХрддрд░ рдЕрд╕реВ рд╢рдХрддреЗ GROUPING_ID рд╕рд░реНрд╡рд╛рдВрд╡рд░ рдХрд╛рд░реНрдп GROUP BY рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдХрд┐рдВрд╡рд╛ GROUPING рдкреНрд░рддреНрдпреЗрдХрд╛рд╕рд╛рдареА рдПрдХ рдлрдВрдХреНрд╢рди GROUP BY рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЬрд░ GROUP BY рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдЪрд╛ рдЦрдВрдб рдЖрд╣реЗ "GROUP BY CUBE(a, b)", рддреНрдпрд╛ рдирдВрддрд░ SELECT рдпрд╛рджреАрдордзреНрдпреЗ "GROUPING_ID(a, b)" рдХрд┐рдВрд╡рд╛ "GROUPING(a) AND GROUPING(b)┬╗ рднреМрддрд┐рдХреАрдХреГрдд рджреГрд╢реНрдп рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА.
    • GROUP BY рдХреЛрдгрддреНрдпрд╛рд╣реА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧрдЯрдмрд╛рдЬреАрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдК рдирдпреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "GROUP BY a, ROLLUP(a, b)" рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдирд╛рд╣реА рдХрд╛рд░рдг рддреНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧрдЯрд╛рдВрдордзреНрдпреЗ рд╣реЛрддреЛ "(a), (a, b), AND (a)".

5.3.8.7 UNION ALL рд╕рд╣ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЬрд╡рд░ рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢рд╡рд░ рдирд┐рд░реНрдмрдВрдз

рд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ UNION ALL рд╕реЗрдЯ рдСрдкрд░реЗрдЯрд░ рд╕рдорд░реНрдерди REFRESH FAST рдЦрд╛рд▓реАрд▓ рдЕрдЯреА рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╕ рдкрд░реНрдпрд╛рдп:

  • рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ UNION ALL рд╢реАрд░реНрд╖ рд╕реНрддрд░рд╛рд╡рд░ рдСрдкрд░реЗрдЯрд░.

    рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ UNION ALL рдСрдкрд░реЗрдЯрд░рд▓рд╛ рд╕рдмрдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдПрдореНрдмреЗрдб рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА, рдПрдХрд╛ рдЕрдкрд╡рд╛рджрд╛рд╕рд╣: рдж UNION ALL рдордзреНрдпреЗ рд╕рдмрдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рдЕрд╕реВ рд╢рдХрддреЗ FROM рдХреНрд▓реЙрдЬ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдлреЙрд░реНрдордЪреА рдЖрд╣реЗ SELECT * FROM (рдпрд╛рд╕рд╣ рдкрд╣рд╛ рдХрд┐рдВрд╡рд╛ рд╕рдмрдХреНрд╡реЗрд░реА рдХрд░рд╛ UNION ALL) рдЦрд╛рд▓реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдкреНрд░рдорд╛рдгреЗ:

    View_with_unionall AS рджреГрд╢реНрдп рддрдпрд╛рд░ рдХрд░рд╛ (рдЧреНрд░рд╛рд╣рдХрд╛рдВрдХрдбреВрди c.rowid crid, c.cust_id, 2 umarker рдирд┐рд╡рдбрд╛ c WHERE c.cust_last_name = 'Smith' UNION рд╕рд░реНрд╡ рдирд┐рд╡рдбрд╛ c.rowid crid, c.cust_id, 3 umarker рдЧреНрд░рд╛рд╣рдХрд╛рдВрдХрдбреВрди c_last_name = WHERE c_last. 'рдЬреЛрдиреНрд╕'); рдпреБрдирд┐рдЕрд▓_рдЗрдирд╕рд╛рдЗрдб_рд╡реНрдпреВ_рдПрдорд╡реНрд╣реА рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рддрдпрд╛рд░ рдХрд░рд╛ * рд╕рд┐рд▓реЗрдХреНрдЯ рдореНрд╣рдгреВрди рдорд╛рдЧрдгреАрдиреБрд╕рд╛рд░ рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рд╛.
    

    рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рджреГрд╢реНрдп view_with_unionall рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░реНрдг рдХрд░рддреЗ.

  • рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдмреНрд▓реЙрдХ UNION ALL рдХреНрд╡реЗрд░реАрдиреЗ рд╕рдореБрдЪреНрдЪрдпрд╛рдВрд╕рд╣ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рдХрд┐рдВрд╡рд╛ рдЬреЙрдЗрдиреНрд╕рд╕рд╣ рдЬрд▓рдж рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░реНрдг рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

    рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ рдЯреЗрдмрд▓рд╡рд░ рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рд▓реЙрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
    рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рдУрд░реЕрдХрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗрд╡рд│ рдЬреЛрдбрдгреАрд╕рд╣ рдПрдХрд▓ рдЯреЗрдмрд▓ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВрдЪреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕рд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ ROWID рдордзреНрдпреЗ рд╕реНрддрдВрдн рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ SELECT рд╕реВрдЪреА рдЖрдгрд┐ рднреМрддрд┐рдХ рджреГрд╢реНрдп рд▓реЙрдЧрдордзреНрдпреЗ. рд╣реЗ рджреГрд╢реНрдпрд╛рдЪреНрдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЖрд╣реЗ view_with_unionall.

  • рдЕрдЧреЛрджрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдмрд╛рдмреАрд╕рдВрдмрдВрдзреА рдмреЛрд▓рддрд╛рдирд╛ SELECT рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реАрдЪреНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ UNION ALL рдорд╛рд░реНрдХрд░, рдЖрдгрд┐ рдж UNION ALL рд╕реНрддрдВрднрд╛рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрд╛рдордзреНрдпреЗ рдПрдХ рд╡реЗрдЧрд│реЗ рд╕реНрдерд┐рд░ рдЕрдВрдХреАрдп рдХрд┐рдВрд╡рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореВрд▓реНрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ UNION ALL рд╢рд╛рдЦрд╛ рдкреБрдвреЗ, рдорд╛рд░реНрдХрд░ рд╕реНрддрдВрдн рдордзреНрдпреЗ рд╕рдорд╛рди рдХреНрд░рдорд┐рдХ рд╕реНрдерд┐рддреАрдд рджрд┐рд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ SELECT рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдмреНрд▓реЙрдХрдЪреА рдпрд╛рджреА. рдкрд╣рд╛ "рдпреБрдирд┐рдпрди рд╕рд░реНрд╡ рдорд╛рд░реНрдХрд░ рдЖрдгрд┐ рдХреНрд╡реЗрд░реА рдкреБрдирд░реНрд▓реЗрдЦрди┬╗рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА UNION ALL рдорд╛рд░реНрдХрд░
  • рдХрд╛рд╣реА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЬрд╕реЗ рдХреА рдмрд╛рд╣реНрдп рдЬреЛрдбрдгреЗ, рдлрдХреНрдд-рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдПрдХрддреНрд░рд┐рдд рджреГрд╢реНрдп рдХреНрд╡реЗрд░реА рдЖрдгрд┐ рд░рд┐рдореЛрдЯ рдЯреЗрдмрд▓реНрд╕ рдпрд╛рд╕рд╣ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реАрдд UNION ALL. рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛, рддрдерд╛рдкрд┐, рдкреНрд░рддрд┐рдХреГрддреАрдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реА рднреМрддрд┐рдХ рджреГрд╢реНрдпреЗ, рдЬреНрдпрд╛рдд рдЬреЛрдбрдгреЗ рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░рд┐рдд рдирд╕рддрд╛рдд, рддреЗ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЬреЗрд╡реНрд╣рд╛ UNION ALL рдХрд┐рдВрд╡рд╛ рд░рд┐рдореЛрдЯ рдЯреЗрдмрд▓ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд.
  • рдпрд╛рд╕рд╣ рдЬрд▓рдж рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рд╡реНрд╣реНрдпреВ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реБрд╕рдВрдЧрддрддрд╛ рдЖрд░рдВрднрд┐рдХрд░рдг рдкреЕрд░рд╛рдореАрдЯрд░ 9.2.0 рдХрд┐рдВрд╡рд╛ рдЙрдЪреНрдЪ рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. UNION ALL.

рдорд▓рд╛ рдУрд░реЕрдХрд▓рдЪреНрдпрд╛ рдЪрд╛рд╣рддреНрдпрд╛рдВрдирд╛ рдирд╛рд░рд╛рдЬ рдХрд░рд╛рдпрдЪреЗ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪреНрдпрд╛ рдпрд╛рджреАрдиреБрд╕рд╛рд░, рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рд╣реА рдпрдВрддреНрд░рдгрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд░рдгрд╛рдд рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рдореЙрдбреЗрд▓ рд╡рд╛рдкрд░реВрди рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдирд╛рд╣реА, рддрд░ рд╣рдЬрд╛рд░реЛ рднрд╛рд░рддреАрдпрд╛рдВрдиреА рд▓рд┐рд╣рд┐рд▓реА рд╣реЛрддреА, рдЬрд┐рдереЗ рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕рдВрдзреА рджрд┐рд▓реА рдЧреЗрд▓реА рд╣реЛрддреА. рддреНрдпрд╛рдВрдЪреА рд╕реНрд╡рддрдГрдЪреА рд╢рд╛рдЦрд╛ рд▓рд┐рд╣рд╛, рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдкреНрд░рддреНрдпреЗрдХрд╛рдиреЗ рд╢рдХреНрдп рддреЗ рдХреЗрд▓реЗ рдЖрдгрд┐ рдХреЗрд▓реЗ. рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реНрдХрд╢рд╛рд╕реНрддреНрд░рд╛рд╕рд╛рдареА рд╣реА рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдгреЗ рдореНрд╣рдгрдЬреЗ рдорд╛рдЗрдирдлреАрд▓реНрдбрдордзреВрди рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ. рд╕реНрдкрд╖реНрдЯ рдирд╕рд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрдмрдВрдзрд╛рдВрдкреИрдХреА рдПрдХ рджрд╛рдмреВрди рддреБрдореНрд╣реА рдХрдзреАрд╣реА рдЦрд╛рдг рдорд┐рд│рд╡реВ рд╢рдХрддрд╛. рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣рд╛ рджреЗрдЦреАрд▓ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рд╢реНрди рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреЛ рдпрд╛ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЖрд╣реЗ.

рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрд╕ рдХреНрдпреВ рдПрд▓ рд╕рд░реНрд╡реНрд╣рд░

рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛

SET рдкрд░реНрдпрд╛рдп рдЖрдгрд┐ рдирд┐рд░реНрдзрд╛рд░рдХ рдХрд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЦрд╛рд▓реАрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд:

  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгрд╛рд░рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ CREATE INDEX рджреГрд╢реНрдпрд╛рдЪрд╛ рдорд╛рд▓рдХ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рдЖрдкрдг рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛, рдж IGNORE_DUP_KEY рдкрд░реНрдпрд╛рдп рдмрдВрдж (рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ) рд╡рд░ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
  • рд╕рд╛рд░рдгреНрдпрд╛ рджреЛрди-рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рдирд╛рд╡рд╛рдВрдиреА рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд, рдпреЛрдЬрдирд╛.рдЯреЗрдмрд▓рдирд╛рд╡ рджреГрд╢реНрдп рд╡реНрдпрд╛рдЦреНрдпрд╛ рдордзреНрдпреЗ.
  • рджреГрд╢реНрдпрд╛рдд рд╕рдВрджрд░реНрднрд┐рдд рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЗ рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ WITH SCHEMABINDING рдкрд░реНрдпрд╛рдп.
  • рджреГрд╢реНрдпрд╛рдд рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЗ рджреЛрди-рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рдирд╛рд╡рд╛рдВрдиреА рд╕рдВрджрд░реНрднрд┐рдд рдХреЗрд▓реА рдкрд╛рд╣рд┐рдЬреЗрдд, ..
  • рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпрд╛рдЪреА рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ рдЧреБрдгрдзрд░реНрдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ NO SQL, рдЖрдгрд┐ рдмрд╛рд╣реНрдп рдкреНрд░рд╡реЗрд╢ рдорд╛рд▓рдорддреНрддрд╛ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ NO.
  • рдХреЙрдорди рд▓рдБрдЧреНрд╡реЗрдЬ рд░рдирдЯрд╛рдЗрдо (CLR) рдлрдВрдХреНрд╢рдиреНрд╕ рджреГрд╢реНрдпрд╛рдЪреНрдпрд╛ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рд╕реВрдЪреАрдордзреНрдпреЗ рджрд┐рд╕реВ рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреАрдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпреЗрдЪрд╛ рднрд╛рдЧ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд. CLR рдлрдВрдХреНрд╢рдиреНрд╕ рд╡реНрд╣реНрдпреВрдЪреНрдпрд╛ WHERE рдХреНрд▓реЙрдЬрдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╡реНрд╣реНрдпреВрдордзреНрдпреЗ рдЬреЙрдЗрди рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдЪрд╛рд▓реВ рдХреНрд▓реЙрдЬрдордзреНрдпреЗ рджрд┐рд╕реВ рд╢рдХрдд рдирд╛рд╣реАрдд.
  • рд╕реАрдПрд▓рдЖрд░ рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрдгрд┐ рд╡реНрд╣реНрдпреВ рдбреЗрдлрд┐рдирд┐рд╢рдирдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рд╕реАрдПрд▓рдЖрд░ рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреНрдпрд╛ рдкрджреНрдзрддреАрдВрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рддрдХреНрддреНрдпрд╛рдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдЧреБрдгрдзрд░реНрдо рд╕реЗрдЯ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

    рдорд╛рд▓рдорддреНрддрд╛
    рдЯреАрдк

    рдирд┐рд░реНрдзрд╛рд░рд╡рд╛рджреА = рд╕рддреНрдп
    Microsoft .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрджреНрдзрддреАрдЪреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореНрд╣рдгреВрди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдШреЛрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

    рдЕрдЪреВрдХ = рдЦрд░реЗ
    .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрджреНрдзрддреАрдЪреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдореНрд╣рдгреВрди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдШреЛрд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

    рдбреЗрдЯрд╛ рдНрдХреНрд╕реЗрд╕ = рдПрд╕рдХреНрдпреВрдПрд▓ рдирд╛рд╣реА
    DataAccessKind.None рд╡рд░ DataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХрд░реВрди рдЖрдгрд┐ SystemDataAccessKind.None рд╡рд░ SystemDataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХрд░реВрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

    рдмрд╛рд╣реНрдп рдкреНрд░рд╡реЗрд╢ = рдирд╛рд╣реА
    рд╣реА рдорд╛рд▓рдорддреНрддрд╛ CLR рд░реВрдЯреАрдирд╕рд╛рдареА NO рд╡рд░ рдбреАрдлреЙрд▓реНрдЯ рдЖрд╣реЗ.

  • рд╡рд╛рдкрд░реВрди рджреГрд╢реНрдп рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ WITH SCHEMABINDING рдкрд░реНрдпрд╛рдп.
  • рд╡реНрд╣реНрдпреВрдордзреНрдпреЗ рдлрдХреНрдд рдмреЗрд╕ рдЯреЗрдмрд▓реНрд╕рдЪрд╛ рд╕рдВрджрд░реНрдн рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗ рд╡реНрд╣реНрдпреВ рд╕рд╛рд░рдЦреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЖрд╣реЗрдд. рджреГрд╢реНрдп рдЗрддрд░ рджреГрд╢реНрдпрд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдК рд╢рдХрдд рдирд╛рд╣реА.
  • рд╡реНрд╣реНрдпреВ рдбреЗрдлрд┐рдирд┐рд╢рдирдордзреАрд▓ SELECT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ Transact-SQL рдШрдЯрдХ рдирд╕рд╛рд╡реЗрдд:

    COUNT
    ROWSET рдлрдВрдХреНрд╢рдиреНрд╕ (OPENDATASOURCE, OPENQUERY, OPENROWSET, рдЖрдгрд┐ OPENXML)
    OUTER рд╕рд╛рдореАрд▓ рд╣реЛрддреЛ(LEFT, RIGHTрдХрд┐рдВрд╡рд╛ FULL)

    рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рд╛рд░рдгреА (рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд SELECT рдордзреНрдпреЗ рд╡рд┐рдзрд╛рди FROM рдЦрдВрдб)
    рд╕реНрд╡рдд: рд╕рд╛рдореАрд▓ рд╣реЛрддрд╛рдд
    рд╡рд╛рдкрд░реВрди рд╕реНрддрдВрдн рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ SELECT * or SELECT <table_name>.*

    DISTINCT
    STDEV, STDEVP, VAR, VARPрдХрд┐рдВрд╡рд╛ AVG
    рдХреЙрдорди рдЯреЗрдмрд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди (CTE)

    рдлреНрд▓реЛрдЯ1, рдордЬрдХреВрд░, ntext, рдкреНрд░рддрд┐рдорд╛, рдПрдХреНрд╕ рдПрдо рдПрд▓рдХрд┐рдВрд╡рд╛ рдлрд╛рдЗрд▓рд╕реНрдЯреНрд░реАрдо рд╕реНрддрдВрдн
    рд╕рдмрдХреНрд╡реЗрд░реА
    OVER рдЦрдВрдб, рдЬреНрдпрд╛рдордзреНрдпреЗ рд░рдБрдХрд┐рдВрдЧ рдХрд┐рдВрд╡рд╛ рдПрдХреВрдг рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд

    рдкреВрд░реНрдг рдордЬрдХреВрд░ рдЕрдВрджрд╛рдЬ (CONTAINS, FREETEXT)
    SUM рдлрдВрдХреНрд╢рди рдЬреЗ рдПрдХ рд░рджреНрдж рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ
    ORDER BY

    CLR рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХреВрдг рдХрд╛рд░реНрдп
    TOP
    CUBE, ROLLUPрдХрд┐рдВрд╡рд╛ GROUPING SETS рдСрдкрд░реЗрдЯрд░

    MIN, MAX
    UNION, EXCEPTрдХрд┐рдВрд╡рд╛ INTERSECT рдСрдкрд░реЗрдЯрд░
    TABLESAMPLE

    рдЯреЗрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕
    OUTER APPLY or CROSS APPLY
    PIVOT, UNPIVOT

    рд╡рд┐рд░рд│ рд╕реНрддрдВрдн рд╕рдВрдЪ
    рдЗрдирд▓рд╛рдЗрди (TVF) рдХрд┐рдВрд╡рд╛ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЯреЗрдмрд▓-рд╡реНрд╣реЕрд▓реНрдпреВрдб рдлрдВрдХреНрд╢рдиреНрд╕ (MSTVF)
    OFFSET

    CHECKSUM_AGG

    1 рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдпрд╛рдордзреНрдпреЗ рдЕрд╕реВ рд╢рдХрддреЗ рдлреНрд▓реЛрдЯ рд╕реНрддрдВрдн; рддрдерд╛рдкрд┐, рдЕрд╕реЗ рд╕реНрддрдВрдн рдХреНрд▓рд╕реНрдЯрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреАрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реАрдд.

  • If GROUP BY рдЙрдкрд╕реНрдерд┐рдд рдЖрд╣реЗ, VIEW рд╡реНрдпрд╛рдЦреНрдпреЗрдордзреНрдпреЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ COUNT_BIG(*) рдЖрдгрд┐ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╕рд╛рд╡реЗ HAVING. рдпрд╛ GROUP BY рдирд┐рд░реНрдмрдВрдз рдХреЗрд╡рд│ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рд╡реНрдпрд╛рдЦреНрдпреЗрд╡рд░ рд▓рд╛рдЧреВ рдЖрд╣реЗрдд. рдПрдХ рдХреНрд╡реЗрд░реА рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдпреЛрдЬрдиреЗрдд рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рд╡рд╛рдкрд░реВ рд╢рдХрддреЗ рдЬрд░реА рддреА рдпрд╛ рдЧреЛрд╖реНрдЯреАрдВрдЪреЗ рд╕рдорд╛рдзрд╛рди рдХрд░рдд рдирд╕рд▓реА рддрд░реАрд╣реА GROUP BY рдирд┐рд░реНрдмрдВрдз
  • рдЬрд░ рджреГрд╢реНрдпрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпреЗрдордзреНрдпреЗ рдЕ GROUP BY рдЦрдВрдб, рдЕрджреНрд╡рд┐рддреАрдп рдХреНрд▓рд╕реНрдЯрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдЪреА рдХреА рдлрдХреНрдд рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрддрдВрднрд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдК рд╢рдХрддреЗ GROUP BY рдЦрдВрдб

рдпреЗрдереЗ рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рднрд╛рд░рддреАрдпрд╛рдВрдЪрд╛ рддреНрдпрд╛рдд рд╕рд╣рднрд╛рдЧ рдирд╡реНрд╣рддрд╛, рдХрд╛рд░рдг рддреНрдпрд╛рдВрдиреА "рдЖрдореНрд╣реА рдереЛрдбреЗ рдкрдг рдЪрд╛рдВрдЧрд▓реЗ рдХрд░реВ" рдпрд╛ рдпреЛрдЬрдиреЗрдиреБрд╕рд╛рд░ рддреЗ рдХрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд┐рд▓реЗ. рдореНрд╣рдгрдЬреЗрдЪ, рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рд╢реЗрддрд╛рдд рдЬрд╛рд╕реНрдд рдЦрд╛рдгреА рдЖрд╣реЗрдд, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдЪреЗ рд╕реНрдерд╛рди рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢рдХ рдЖрд╣реЗ. рд╕рд░реНрд╡рд╛рдд рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдЧреЛрд╖реНрдЯ рд╣реА рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ:

рд╡реНрд╣реНрдпреВрдордзреНрдпреЗ рдлрдХреНрдд рдмреЗрд╕ рдЯреЗрдмрд▓реНрд╕рдЪрд╛ рд╕рдВрджрд░реНрдн рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЬреЗ рд╡реНрд╣реНрдпреВ рд╕рд╛рд░рдЦреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЖрд╣реЗрдд. рджреГрд╢реНрдп рдЗрддрд░ рджреГрд╢реНрдпрд╛рдВрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрдК рд╢рдХрдд рдирд╛рд╣реА.

рдЖрдордЪреНрдпрд╛ рдЯрд░реНрдорд┐рдиреЛрд▓реЙрдЬреАрдордзреНрдпреЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдлрдВрдХреНрд╢рди рджреБрд╕рд░реНрдпрд╛ рднреМрддрд┐рдХреАрдХреГрдд рдлрдВрдХреНрд╢рдирдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдпрд╛рдореБрд│реЗ рдЕрдВрдХреБрд░рд╛рддреАрд▓ рд╕рд░реНрд╡ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдирд╖реНрдЯ рд╣реЛрддрд╛рдд.
рддрд╕реЗрдЪ, рд╣реА рдорд░реНрдпрд╛рджрд╛ (рдЖрдгрд┐ рдкреБрдвреЗ рдордЬрдХреВрд░рд╛рдд) рд╡рд╛рдкрд░ рдкреНрд░рдХрд░рдгреЗ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдХрдореА рдХрд░рддреЗ:

рд╡реНрд╣реНрдпреВ рдбреЗрдлрд┐рдирд┐рд╢рдирдордзреАрд▓ SELECT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯрдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ Transact-SQL рдШрдЯрдХ рдирд╕рд╛рд╡реЗрдд:

COUNT
ROWSET рдлрдВрдХреНрд╢рдиреНрд╕ (OPENDATASOURCE, OPENQUERY, OPENROWSET, рдЖрдгрд┐ OPENXML)
OUTER рд╕рд╛рдореАрд▓ рд╣реЛрддреЛ(LEFT, RIGHTрдХрд┐рдВрд╡рд╛ FULL)

рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рд╛рд░рдгреА (рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд SELECT рдордзреНрдпреЗ рд╡рд┐рдзрд╛рди FROM рдЦрдВрдб)
рд╕реНрд╡рдд: рд╕рд╛рдореАрд▓ рд╣реЛрддрд╛рдд
рд╡рд╛рдкрд░реВрди рд╕реНрддрдВрдн рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ SELECT * or SELECT <table_name>.*

DISTINCT
STDEV, STDEVP, VAR, VARPрдХрд┐рдВрд╡рд╛ AVG
рдХреЙрдорди рдЯреЗрдмрд▓ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди (CTE)

рдлреНрд▓реЛрдЯ1, рдордЬрдХреВрд░, ntext, рдкреНрд░рддрд┐рдорд╛, рдПрдХреНрд╕ рдПрдо рдПрд▓рдХрд┐рдВрд╡рд╛ рдлрд╛рдЗрд▓рд╕реНрдЯреНрд░реАрдо рд╕реНрддрдВрдн
рд╕рдмрдХреНрд╡реЗрд░реА
OVER рдЦрдВрдб, рдЬреНрдпрд╛рдордзреНрдпреЗ рд░рдБрдХрд┐рдВрдЧ рдХрд┐рдВрд╡рд╛ рдПрдХреВрдг рд╡рд┐рдВрдбреЛ рдХрд╛рд░реНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд

рдкреВрд░реНрдг рдордЬрдХреВрд░ рдЕрдВрджрд╛рдЬ (CONTAINS, FREETEXT)
SUM рдлрдВрдХреНрд╢рди рдЬреЗ рдПрдХ рд░рджреНрдж рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреЗ
ORDER BY

CLR рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдПрдХреВрдг рдХрд╛рд░реНрдп
TOP
CUBE, ROLLUPрдХрд┐рдВрд╡рд╛ GROUPING SETS рдСрдкрд░реЗрдЯрд░

MIN, MAX
UNION, EXCEPTрдХрд┐рдВрд╡рд╛ INTERSECT рдСрдкрд░реЗрдЯрд░
TABLESAMPLE

рдЯреЗрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕
OUTER APPLY or CROSS APPLY
PIVOT, UNPIVOT

рд╡рд┐рд░рд│ рд╕реНрддрдВрдн рд╕рдВрдЪ
рдЗрдирд▓рд╛рдЗрди (TVF) рдХрд┐рдВрд╡рд╛ рдорд▓реНрдЯреА-рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЯреЗрдмрд▓-рд╡реНрд╣реЕрд▓реНрдпреВрдб рдлрдВрдХреНрд╢рдиреНрд╕ (MSTVF)
OFFSET

CHECKSUM_AGG

рдмрд╛рд╣реНрдп рд╕рд╛рдореАрд▓ рд╣реЛрдгреЗ, рд╕рдВрдШ рдХрд░рдгреЗ, рдСрд░реНрдбрд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдЗрддрд░рд╛рдВрдирд╛ рдордирд╛рдИ рдЖрд╣реЗ. рдХрд╛рдп рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА рдпрд╛рдкреЗрдХреНрд╖рд╛ рдХрд╛рдп рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рд╣реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЭрд╛рд▓реЗ рдЕрд╕рддреЗ. рдпрд╛рджреА рдХрджрд╛рдЪрд┐рдд рдЦреВрдкрдЪ рд▓рд╣рд╛рди рдЕрд╕реЗрд▓.

рдереЛрдбрдХреНрдпрд╛рдд: LGPL рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ (рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрдпрд╛) DBMS vs (рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдЕрдкрд╡рд╛рдж рд╡рдЧрд│рддрд╛, рддрд╛рдВрддреНрд░рд┐рдХ рдирд╛рд╣реА) рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪрд╛ рдПрдХ рдореЛрдард╛ рд╕рдВрдЪ. рддрдерд╛рдкрд┐, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ рдХреА рд░рд┐рд▓реЗрд╢рдирд▓ рд▓реЙрдЬрд┐рдХрдордзреНрдпреЗ рд╣реА рдпрдВрддреНрд░рдгрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХрд╛рдкреЗрдХреНрд╖рд╛ рдХрд╛рд╣реАрд╕реЗ рдХрдареАрдг рдЖрд╣реЗ.

рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА

рд╣реЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ? PostgreSQL рд╣реЗ "рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди" рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдЖрдд рдПрдХ рдЬрдЯрд┐рд▓ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрд╣реЗ рдЬреЛ рдХреНрд╡реЗрд░реА рддрдпрд╛рд░ рдХрд░рддреЛ. рдпреЗрдереЗ рд╕реНрддреНрд░реЛрдд. рдЖрдгрд┐ рдлрдХреНрдд ifs рдЪреНрдпрд╛ рдЧреБрдЪреНрдЫрд╛рд╕рд╣ heuristics рдЪрд╛ рдПрдХ рдореЛрдард╛ рд╕рдВрдЪ рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдЬрд░ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрднреНрдпрд╛рд╕рд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдорд╣рд┐рдиреЗ рдЕрд╕рддреАрд▓ рддрд░ рддреБрдореНрд╣реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ рд╢рдХрддрд╛.

рддреЗ рдкреНрд░рднрд╛рд╡реАрдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдХрд╛? рдЕрдЧрджреА рдкреНрд░рднрд╛рд╡реА. рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рд╣реЗ рд╕рд┐рджреНрдз рдХрд░рдгреЗ рдХрдареАрдг рдЖрд╣реЗ. рдореА рдПрд╡рдвреЗрдЪ рдореНрд╣рдгреВ рд╢рдХрддреЛ рдХреА рдореЛрдареНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдордзреНрдпреЗ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╣рдЬрд╛рд░реЛ рдкреНрд░рд╢реНрдирд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓реНрдпрд╛рд╕, рд╕рд░рд╛рд╕рд░реА рддреЗ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдо рдЖрд╣реЗрдд. рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛрдгрддреАрд╣реА рдХреНрд╡реЗрд░реА рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд▓рд┐рд╣реВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ рд╣рдЬрд╛рд░реЛ рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╣ рддреНрдпрд╛рд▓рд╛ рддреЗ рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░реЗрд░рдгрд╛ рдХрд┐рдВрд╡рд╛ рд╡реЗрд│ рдорд┐рд│рдгрд╛рд░ рдирд╛рд╣реА. рдкрд░рд┐рдгрд╛рдордХрд╛рд░рдХрддреЗрдЪрд╛ рдкреБрд░рд╛рд╡рд╛ рдореНрд╣рдгреВрди рдореА рдЖрддрд╛ рдлрдХреНрдд рдПрдХрдЪ рдЧреЛрд╖реНрдЯ рд╕рд╛рдВрдЧреВ рд╢рдХрддреЛ рдХреА рдпрд╛ DBMS рд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░ рдЕрдиреЗрдХ рдкреНрд░рдХрд▓реНрдк рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗрдд. рдИрдЖрд░рдкреА рдкреНрд░рдгрд╛рд▓реА, рдЬреНрдпрд╛рдд рд╣рдЬрд╛рд░реЛ рднрд┐рдиреНрди рдордЯреЗрд░рд┐рдЕрд▓рд╛рдЗрдЬреНрдб рдлрдВрдХреНрд╢рдиреНрд╕ рдЖрд╣реЗрдд, рд╣рдЬрд╛рд░реЛ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╣ рд╢реЗрдХрдбреЛ рджрд╢рд▓рдХреНрд╖ рд░реЗрдХреЙрд░реНрдб рдирд┐рдпрдорд┐рдд рджреЛрди-рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЪрд╛рд▓рддрд╛рдд. рддрдерд╛рдкрд┐, рдХреЛрдгреАрд╣реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВрди рдкрд░рд┐рдгрд╛рдордХрд╛рд░рдХрддрд╛ рддрдкрд╛рд╕реВ/рдирдХрд╛рд░реВ рд╢рдХрддреЛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрдгрд┐ PostgreSQL, рдЪрд╛рд▓реВ рдХрд░рдд рдЖрд╣реЗ SQL рдХреНрд╡реЗрд░реА рд▓реЙрдЧ рдХрд░рдгреЗ рдЖрдгрд┐ рддрд░реНрдХ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдмрджрд▓рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгреЗ.

рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдВрдордзреНрдпреЗ, рдореА рдЖрдкрдг рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ рдирд┐рд░реНрдмрдВрдз рдХрд╕реЗ рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛, рдмрджрд▓ рд╕рддреНрд░рд╛рдВрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдмрд░реЗрдЪ рдХрд╛рд╣реА рдпрд╛рдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рдмреЛрд▓реЗрди.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛