рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд┐рдЩрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд▓реЗрдЦреНрдиреЗ рд░ рдкрдвреНрдЫ

рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд┐рдЩрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд▓реЗрдЦреНрдиреЗ рд░ рдкрдвреНрдЫ
рдЕрдШрд┐рд▓реНрд▓реЛ рдорд╛ рд▓реЗрдЦ рдореИрд▓реЗ рд░рд┐рд▓реЗрд╕рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрд╕реНрддреИ рддрд╛рд▓рд┐рдХрд╛ рд░ рдлрд┐рд▓реНрдбрд╣рд░реВ рднрдиреНрджрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдирд┐рд░реНрдорд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╡рд░реНрдгрди рдЧрд░реЗрдВред рдпрд╕рд▓реЗ рд╢рд╛рд╕реНрддреНрд░реАрдп рдПрдХ рднрдиреНрджрд╛ рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдлрд╛рдЗрджрд╛рд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреЗ рдзреЗрд░реИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНтАНрдпреЛред рдзреЗрд░реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реНрд╡рд╕реНрдд рдирднрдПрдХреЛ рдкрд╛рдПред

рдпрд╕ рд▓реЗрдЦрдорд╛, рдо рджреЗрдЦрд╛рдЙрдиреЗрдЫреБ рдХрд┐ рдХрд╕рд░реА рдпреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЕрдкрд░реЗрдЯрд┐рдЩ рддрд░реНрдХрдорд╛ рдХреБрдиреИ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд▓реЗрдЦ рд░ рдкрдвреНрдирд▓рд╛рдИ рдЫрд┐рдЯреЛ рд░ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рд╕рдиреНрддреБрд▓рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░реНрдпрддрд╛рд▓рд╛рдИ рдЖрдзреБрдирд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMSs (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, Oracle рд░ Microsoft SQL Server) рдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫред рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдо рджреЗрдЦрд╛рдЙрдиреЗрдЫреБ рдХрд┐ рдЙрдиреАрд╣рд░реВрд▓реЗ рдХреЗ рдЧрд░реЗ, рд╣рд▓реНрдХрд╛ рд░реВрдкрдорд╛ рднрдиреНрдиреБрдкрд░реНрджрд╛, рдзреЗрд░реИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдиред

рд╡рд┐рд╡рд░рдг

рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ, рд░рд╛рдореНрд░реЛ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдо рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╕рд╣рд┐рдд рд╡рд░реНрдгрди рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреБред рдорд╛рдиреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рддрд░реНрдХ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рд▓реЗ рд╡рд┐рднрд╛рдЧрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХреБрд▓ рддрд▓рдмред

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

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 рдорд╛ рдпреЛ рдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рдЬрдЯрд┐рд▓рддрд╛ рдмрд░рд╛рдмрд░ рд╣реБрдиреЗрдЫ рдУ (рдХрд░реНрдордЪрд╛рд░реА рд╕рдВрдЦреНрдпрд╛)рдХрд┐рдирднрдиреЗ рдпреЛ рдЧрдгрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрдХреЛ рд╕рдореНрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреНрдпрд╛рди рдЧрд░реНрди рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╡рд┐рднрд╛рдЧрджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╣рд╛рдБ рдХреЗрд╣рд┐ рд╕рд╛рдирд╛ рдкрдирд┐ рд╣реБрдиреЗрдЫрдиреН (рд╣рд╛рдореА рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╡рд┐рднрд╛рдЧрд╣рд░реВ рднрдиреНрджрд╛ рдзреЗрд░реИ рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВ рдЫрдиреН) рдЫрдиреМрдЯ рдЧрд░рд┐рдПрдХреЛ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рдУ (рдХрд░реНрдордЪрд╛рд░реАрд╣рд░реВрдХреЛ рд▓рдЧ рд╕рдВрдЦреНрдпрд╛) рд╡рд╛ рдУ (рд╡рд┐рднрд╛рдЧрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛) рд╕рдореВрд╣реАрдХрд░рдг рд░ рдпрд╕реНрддреИ рдЕрдиреНрдп рд▓рд╛рдЧрд┐ред

рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдУрднрд░рд╣реЗрдб рд╡рд┐рднрд┐рдиреНрди DBMS рдорд╛ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреЗрдЫреИрдиред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛, рдХрд╛рд░реНрдпрд╛рддреНрдордХ 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;

рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд▓рд╛рдЧреА рджреЗрдЦрд┐ рдЕрднрд┐рднрд╛рд╡рдХ рд╣реЛ 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;

рд╕рдорд╛рд░реЛрд╣ рдХрд▓ рдЧрд░реНрджрд╛ рдорд┐рддрд┐ рдЕрд░реНрдбрд░ рд▓рд╛рдЗрдирдХреЛ рд▓рд╛рдЧрд┐, рдлрд┐рд▓реНрдб рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдЫ рддреНрдпреЛ рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рдЕрд░реНрдбрд░ рд▓рд╛рдЗрдирд╣рд░реВ рдкрдврд┐рдиреЗрдЫред рдЬрдм рдЕрд░реНрдбрд░ рдорд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдкреНрд░рдгрд╛рд▓реА рдЖрдлреИрд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд▓рд╛рдЗрдирдорд╛ denormalized рдорд┐рддрд┐ рдкреБрди: рдЧрдгрдирд╛ рдЧрд░реНрдиреЗрдЫред

рд▓рд╛рдн

рдпреЛ рд╕рдореНрдкреВрд░реНрдг рд╕рдВрдпрдиреНрддреНрд░ рдХреЗ рдХрд╛ рд▓рд╛рдЧрд┐ рд╣реЛ? рдХреНрд▓рд╛рд╕рд┐рдХ DBMSs рдорд╛, рдкреНрд░рд╢реНрдирд╣рд░реВ рдкреБрди: рд▓реЗрдЦреНрди рдмрд┐рдирд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╡рд╛ DBA рд▓реЗ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди, рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкреНрд░рд╢реНрди рдпреЛрдЬрдирд╛рдХрд╛рд░рд▓рд╛рдИ рдмрддрд╛рдЙрди рд╕рдХреНрдЫ (рд░ HINT рд╣рд░реВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMS рд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рдЫрдиреН)ред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЬрддрд┐рд╕реБрдХреИ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ рдкрдирд┐, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд▓реЗрдЦрдорд╛ рдкрд╣рд┐рд▓реЛ рдкреНрд░рд╢реНрди рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрдирдиреН рдУ (рд╡рд┐рднрд╛рдЧрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛) рдкреНрд░рд╢реНрдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рд╡рд╛ рдЯреНрд░рд┐рдЧрд░рд╣рд░реВ рдердк рдирдЧрд░реАред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпреЛрдЬрдирд╛рдорд╛, рд╡рд┐рдХрд╛рд╕рдХреЛ рдЪрд░рдгрдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдбрд╛рдЯрд╛ рднрдгреНрдбрд╛рд░рдг рд╕рдВрд░рдЪрдирд╛ рд░ рдХреБрди рдПрдХрддреНрд░реАрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪреНрдиреБ рдкрд░реНрджреИрдиред рдпреЛ рд╕рдмреИ рд╕рдЬрд┐рд▓реИ рдЙрдбрд╛рди рдорд╛, рд╕реАрдзрд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ ред рдХреЗрд╣реА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рд╣рд╛рддрдорд╛ рд░рд╣реЗрдХреЛ рдХрд╛рд░реНрдпрдорд╛ рдЖрдзрд╛рд░рд┐рдд рддрд░реНрдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдЫрдиреНред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЬрдЯрд┐рд▓рддрд╛, рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛рд╣рд░реВ, рди рдд рдЬреЛрдбреНрдиреЗ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рди рдХреБрдиреИ рдЕрдиреНрдп рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдмреБрдЭреНрдЫрдиреНред рдпреА рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рднрдиреНрджрд╛ рдмрдвреА рд╡реНрдпрд╛рдкрд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╣реБрдиреНред рддреНрдпрд╕рдкрдЫрд┐, рдпреЛ рд╕рдмреИ рдкрд░реАрдХреНрд╖рдг рд╡рд╛ рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдЬрд╛рдиреНрдЫред рд▓рд╛рдореЛ рд╕рдордпрджреЗрдЦрд┐ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд▓рдЧрд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫред рдЬрдм рд▓рд╛рдореЛ рдХреНрд╡реЗрд░реА рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдиреНрдЫ, рддрдм рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ (рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ - рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ DBA) рдХреЗрд╣реА рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ MATERIALized рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдЫрдиреНред рдпрд╕рд▓реЗ рд░реЗрдХрд░реНрдбрд┐рдЩрд▓рд╛рдИ рдереЛрд░реИ рдврд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ (рдпрд╕рд▓реЗ рд▓реЗрдирджреЗрдирдорд╛ рдердк рдлрд┐рд▓реНрдб рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ)ред рдЬреЗ рд╣реЛрд╕реН, рдпреЛ рдХреНрд╡реЗрд░реА рдорд╛рддреНрд░ рд╣реЛрдЗрди, рдпреЛ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреНрдп рд╕рдмреИрд▓рд╛рдИ рдкрдирд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЧрддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред рдПрдХреИ рд╕рдордпрдорд╛, рдХреБрди рдкреНрд░рдХрд╛рд░реНрдпрд▓рд╛рдИ рд╕рд╛рдХрд╛рд░ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрди рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рдЬрд┐рд▓реЛ рдЫред рджреБрдИ рдореБрдЦреНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ: рд╕рдореНрднрд╛рд╡рд┐рдд рдЗрдирдкреБрдЯ рдорд╛рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ (рдпреЛ рдХрддрд┐ рд░реЗрдХрд░реНрдбрд╣рд░реВ рд╕рдореНрдмрдиреНрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдорд╛ рд╣реБрдиреЗрдЫрдиреН), рд░ рдХрддрд┐ рдкрдЯрдХ рдпреЛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

Analogues

рдЖрдзреБрдирд┐рдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ DBMS рд╣рд░реВрдорд╛ рд╕рдорд╛рди рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВ рдЫрдиреН: рдлрд╛рд╕реНрдЯ рд░рд┐рдлреНрд░реЗрд╢ (рдУрд░реЗрдХрд▓) рд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджреГрд╢реНрдп (рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ SQL рд╕рд░реНрднрд░) рд╕рдБрдЧ рднреМрддрд┐рдХ рджреГрд╢реНрдпред PostgreSQL рдорд╛, MATERIALIZED VIEW рд▓реЗрдирджреЗрдирдорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рддрд░ рдЕрдиреБрд░реЛрдзрдорд╛ рдорд╛рддреНрд░ (рд░ рдзреЗрд░реИ рдХрдбрд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрд╕рдБрдЧ рдкрдирд┐), рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрджреИрдиреМрдВред рддрд░ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓реЗ рдЙрдиреАрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрджрдЫред

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

рджреЛрд╕реНрд░реЛ, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рдЫрдиреН:

рдмрдЬреЗрдЯ

5.3.8.4 рджреНрд░реБрдд рд░рд┐рдлреНрд░реЗрд╕рдорд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ

рднреМрддрд┐рдХ рджреГрд╢реНрдпрдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдмрдиреНрдзрд┐рдд рдЫ:

  • рднреМрддрд┐рдХ рджреГрд╢реНрдпрдорд╛ рдирджреЛрд╣реЛрд░рд┐рдиреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬрд╕реНрддрд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБ рд╣реБрдБрджреИрди SYSDATE рд░ ROWNUM.
  • рднреМрддрд┐рдХ рджреГрд╢реНрдпрдорд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБ рд╣реБрдБрджреИрди RAW or LONG RAW рдбрд╛рдЯрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВред
  • рдпрд╕рдорд╛ a рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрджреИрди SELECT рд╕реВрдЪреА subqueryред
  • рдпрд╕рд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрджреИрди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, RANK) рдорд╛ SELECT рдЦрдгреНрдб
  • рдпрд╕рд▓реЗ рдПрдЙрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛рд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрджреИрди рдЬрд╕рдорд╛ рдП XMLIndex рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЫред
  • рдпрд╕рдорд╛ a рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрджреИрди MODEL рдЦрдгреНрдб
  • рдпрд╕рдорд╛ a рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрджреИрди HAVING subquery рдХреЛ рд╕рд╛рде рдЦрдгреНрдбред
  • рдпрд╕рд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рдХреНрд╡реЗрд░реАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрджреИрди ANY, ALLрд╡рд╛ NOT EXISTS.
  • рдпрд╕рдорд╛ a рд╕рдорд╛рд╡реЗрд╢ рд╣реБрди рд╕рдХреНрджреИрди [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) рдЙрдкрд╕реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред Oracle рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдиреБрднрдпреЛ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиред
  • If VARIANCE(expr) or STDDEV(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ, COUNT(expr) рд░ SUM(expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫред Oracle рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдиреБрднрдпреЛ SUM(expr *expr) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиред
  • рдпреЛ SELECT рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╡реЗрд░реАрдорд╛ рд╕реНрддрдореНрдн рдзреЗрд░реИ рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдмрд╛рдЯ рд╕реНрддрдореНрднрд╣рд░реВрд╕рдБрдЧ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реБрди рд╕рдХреНрджреИрдиред рдпрд╕рдХреЛ рд╕рдореНрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рднрдиреЗрдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рджреГрд╢реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛред
  • рдпреЛ SELECT рд╕реВрдЪреАрдорд╛ рд╕рдмреИ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБрдкрд░реНрдЫ GROUP BY рд╕реНрддрдореНрднрд╣рд░реВред
  • рднреМрддрд┐рдХ рджреГрд╢реНрдп рдПрдХ рд╡рд╛ рдзреЗрд░реИ рдЯрд╛рдврд╛рдХреЛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫреИрдиред
  • рдпрджрд┐ рддрдкрд╛рдИрдВ рдПрдХ рдкреНрд░рдпреЛрдЧ CHAR рднреМрддрд┐рдХ рджреГрд╢реНрдп рд▓рдЧрдХреЛ рдлрд┐рд▓реНрдЯрд░ рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдорд╛рд╕реНрдЯрд░ рд╕рд╛рдЗрдЯрдХреЛ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╕реЗрдЯрд╣рд░реВ рд░ рднреМрддрд┐рдХ рджреГрд╢реНрдп рд╕рдорд╛рди рд╣реБрдиреБрдкрд░реНрдЫред
  • рдпрджрд┐ рднреМрддрд┐рдХ рджреГрд╢реНрдпрдорд╛ рдирд┐рдореНрди рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдЫ рднрдиреЗ, рджреНрд░реБрдд рд░рд┐рдлреНрд░реЗрд╕рд▓рд╛рдИ рдкрд░рдореНрдкрд░рд╛рдЧрдд DML рдШреБрд╕рд╛рдЙрдиреЗ рд░ рдкреНрд░рддреНрдпрдХреНрд╖ рд▓реЛрдбрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рд╕рдорд░реНрдерди рдЧрд░рд┐рдиреНрдЫред
    • рд╕рдВрдЧ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╣рд░реБ MIN or MAX рд╕рдореБрдЪреНрдЪрдп
    • рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╣рд░реВ рдЫрдиреН SUM(expr) рддрд░ рд╣реЛрдЗрди COUNT(expr)
    • рдмрд┐рдирд╛ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╣рд░реВ COUNT(*)

    рдпрд╕реНрддреЛ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд▓рд╛рдИ рд╕рдореНрдорд┐рд▓рд┐рдд-рдорд╛рддреНрд░ рднреМрддрд┐рдХ рджреГрд╢реНрдп рднрдирд┐рдиреНрдЫред

  • рд╕рдВрдЧ рдПрдХ рднреМрддрд┐рдХ рджреГрд╢реНрдп MAX or MIN рдореЗрдЯрд╛рдЙрди рд╡рд╛ рдорд┐рд╢реНрд░рд┐рдд DML рдХрдердирд╣рд░реВ рдкрдЫрд┐ рдЫрд┐рдЯреЛ рд░рд┐рдлреНрд░реЗрд╕ рдЧрд░реНрди рдорд┐рд▓реНрдЫ рдпрджрд┐ рдпрд╕рдорд╛ a рдЫреИрди рднрдиреЗ WHERE рдЦрдгреНрдб
    рдореЗрдЯрд╛рдПрдкрдЫрд┐ рд╡рд╛ рдорд┐рд╢реНрд░рд┐рдд DML рдкрдЫрд┐ рдЕрдзрд┐рдХрддрдо/рдорд┐рдиреЗрдЯ рджреНрд░реБрдд рд░рд┐рдлреНрд░реЗрд╕ рдЗрдиреНрд╕рд░реНрдЯ-рдУрдиреНрд▓реА рдХреЗрд╕ рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реБрдБрджреИрдиред рдпрд╕рд▓реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╕рдореВрд╣рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдзрд┐рдХрддрдо/рдорд┐рдирдЯ рдорд╛рдирд╣рд░реВ рдореЗрдЯрд╛рдЙрдБрдЫ рд░ рдкреБрди: рдЧрдгрдирд╛ рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВ рдпрд╕рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡ рдмрд╛рд░реЗ рд╕рдЪреЗрдд рд╣реБрди рдЖрд╡рд╢реНрдпрдХ рдЫред
  • рдорд╛ рдирд╛рдорд┐рдд рджреГрд╢реНрдп рд╡рд╛ рд╕рдмрдХреНрд╡реЗрд░реАрд╣рд░реВ рд╕рд╣рд┐рдд рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╣рд░реВ FROM рджреГрд╢реНрдпрд╣рд░реВ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдорд░реНрдЬ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗ рдЦрдгреНрдбрд▓рд╛рдИ рджреНрд░реБрдд рд░реВрдкрдорд╛ рддрд╛рдЬрд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрди рджреГрд╢реНрдпрд╣рд░реВ рдорд░реНрдЬ рд╣реБрдиреЗрдЫрдиреН, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдУрд░реЗрдХрд▓ рдбрд╛рдЯрд╛рдмреЗрд╕ SQL тАЛтАЛрднрд╛рд╖рд╛ рд╕рдиреНрджрд░реНрдн.
  • рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдмрд╛рд╣рд┐рд░реА рдЬреЛрдбрд┐рд╣рд░реВ рдЫреИрдирдиреН рднрдиреЗ, рддрдкрд╛рдИрдВрд╕рдБрдЧ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рдЫрдиреЛрдЯ рд╣реБрди рд╕рдХреНрдЫ рд░ рдорд╛ рд╕рд╛рдореЗрд▓ рд╣реБрди рд╕рдХреНрдЫ WHERE рдЦрдгреНрдб
  • рдмрд╛рд╣рд┐рд░реА рдЬреЛрдбрд┐рд╣рд░реБ рд╕рдВрдЧ рднреМрддрд┐рдХ рд╕рдордЧреНрд░ рджреГрд╢реНрдпрд╣рд░реБ рдкрд╛рд░рдВрдкрд░рд┐рдХ DML рд░ рдкреНрд░рддреНрдпрдХреНрд╖ рд▓реЛрдб рдкрдЫрд┐ рдЫрд┐рдЯреЛ рд░рд┐рдлреНрд░реЗрд╕ рдпреЛрдЧреНрдп рдЫрдиреН, рдХреЗрд╡рд▓ рдмрд╛рд╣рд┐рд░реА рддрд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░рд┐рдПрдХреЛ рдЫред рд╕рд╛рдереИ, рднрд┐рддреНрд░реА рдЬреЛрдбреНрдиреЗ рддрд╛рд▓рд┐рдХрд╛рдХреЛ рдЬреЛрдбрд┐рдиреЗ рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╡рд░реЛрдзрд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдмрд╛рд╣рд┐рд░реА рдЬреЛрдбрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рд╕рдмреИ рдЬреЛрдбрд╣рд░реВ рдЬреЛрдбрд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫ ANDs рд░ рд╕рдорд╛рдирддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ (=) рдЕрдкрд░реЗрдЯрд░ред
  • рд╕рдВрдЧ рднреМрддрд┐рдХ рджреГрд╢реНрдпрд╣рд░реБ рдХреЛ рд▓рд╛рдЧреА CUBE, ROLLUP, рд╕рдореВрд╣рдмрджреНрдз рд╕реЗрдЯрд╣рд░реВ, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдпреЛрдЬрди, рдирд┐рдореНрди рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреН:
    • рдпреЛ SELECT рд╕реВрдЪреАрдорд╛ рд╕рдореВрд╣реАрдХрд░рдг рд╡рд┐рднреЗрджрдХ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБрдкрд░реНрдЫ рдЬреБрди рдпрд╛ рдд a рд╣реБрди рд╕рдХреНрдЫ 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 рдЕрдкрд░реЗрдЯрд░рд▓рд╛рдИ рд╕рдмрдХреНрд╡реЗрд░реА рднрд┐рддреНрд░ рдЗрдореНрдмреЗрдб рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрди, рдПрдЙрдЯрд╛ рдЕрдкрд╡рд╛рджрдХреЛ рд╕рд╛рде: The UNION ALL рдорд╛ subquery рдорд╛ рд╣реБрди рд╕рдХреНрдЫ FROM рдЦрдгреНрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рд╢реНрди рдлрд╛рд░рдо рдХреЛ рд╣реЛ SELECT * FROM (рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рд╕рдмрдХреНрд╡реЗрд░реАрд╕рдБрдЧ UNION ALL) рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдгрдорд╛ рдЬрд╕реНрддреИ:

    рджреГрд╢реНрдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН 'рдЬреЛрдиреНрд╕'); MATERIALized View unionall_inside_view_mv REFRESH FAST ON DEMAND SELECT * FROM view_with_unionall;
    

    рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рджреГрд╢реНрдп view_with_unionall рдЫрд┐рдЯреЛ рд░рд┐рдлреНрд░реЗрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрджрдЫред

  • рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╡реЗрд░реА рдмреНрд▓рдХ рдорд╛ UNION ALL рдХреНрд╡реЗрд░реАрд▓реЗ рдПрдЧреНрд░реАрдЧреЗрдЯреНрд╕рдХреЛ рд╕рд╛рде рджреНрд░реБрдд рд░рд┐рдлреНрд░реЗрд╕ рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ рдордЯреЗрд░рд┐рдпрд▓рд╛рдЗрдЬреНрдб рджреГрд╢реНрдп рд╡рд╛ рдЬреЛрдбрд╣рд░реВрд╕рдБрдЧ рджреНрд░реБрдд рд░рд┐рдлреНрд░реЗрд╕ рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ рднреМрддрд┐рдХ рджреГрд╢реНрдпрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫред

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

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

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

рдорд╛рдИрдХреНрд░реЛрд╕рдлреНрдЯ SQL рд╕рд░реНрд╡рд░

рдердк рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ

SET рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд░ deterministic рдкреНрд░рдХрд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдирд┐рдореНрди рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ:

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

    рд╕рдореНрдкрддреНрддрд┐
    рдиреЛрдЯ

    DETERMINISTIC = рд╕рддреНрдп
    Microsoft .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдзрд┐рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред

    PRECISE = рд╕рддреНрдп
    .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдзрд┐рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдиреБрдкрд░реНрдЫред

    рдбрд╛рдЯрд╛ рдкрд╣реБрдБрдЪ = рдХреБрдиреИ SQL рдЫреИрди
    DataAccessKind.None рдорд╛ DataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рд░ SystemDataAccessKind.None рдорд╛ SystemDataAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдЧрд░реЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫред

    рдмрд╛рд╣реНрдп рдкрд╣реБрдБрдЪ = рдЫреИрди
    рдпреЛ рдЧреБрдг CLR рджрд┐рдирдЪрд░реНрдпрд╛рдХрд╛ рд▓рд╛рдЧрд┐ NO рдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЫред

  • рджреГрд╢реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрдЫ WITH SCHEMABINDING рд╡рд┐рдХрд▓реНрдкред
  • рджреГрд╢реНрдпрд▓реЗ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрдкрд░реНрдЫ рдЬреБрди рджреГрд╢реНрдпрдХреЛ рд░реВрдкрдорд╛ рдПрдЙрдЯреИ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдЫрдиреНред рджреГрд╢реНрдпрд▓реЗ рдЕрдиреНрдп рджреГрд╢реНрдпрд╣рд░реВрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрджреИрдиред
  • рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ SELECT рдХрдердирд▓реЗ рдирд┐рдореНрди Transact-SQL рддрддреНрд╡рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди:

    COUNT
    ROWSET рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ (OPENDATASOURCE, OPENQUERY, OPENROWSET, рд░ OPENXML)
    OUTER рдЬреЛрдбрд┐рдиреНрдЫ(LEFT, RIGHTрд╡рд╛ FULL)

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

    DISTINCT
    STDEV, STDEVP, VAR, VARPрд╡рд╛ AVG
    рд╕рд╛рдЭрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (CTE)

    рдлреНрд▓реЛрдЯ1, рдкрд╛рда, ntext, рдЫрд╡рд┐, XMLрд╡рд╛ рдлрд╛рдЗрд▓рд╕реНрдЯреНрд░рд┐рдо рд╕реНрддрдореНрднрд╣рд░реВ
    рд╕рдмрдХреНрд╡реЗрд░реА
    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 рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБрдкрд░реНрдЫ COUNT_BIG(*) рд░ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреБ рд╣реБрдБрджреИрди HAVINGред рдпреА GROUP BY рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫрдиреНред рдПрдХ рдХреНрд╡реЗрд░реАрд▓реЗ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрдЕрдиреБрдХреНрд░рдорд┐рдд рджреГрд╢реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫ рдпрджрд┐ рдпрд╕рд▓реЗ рдпреА рдХреБрд░рд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрджреИрди рднрдиреЗ рдкрдирд┐ GROUP BY рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВред
  • рдпрджрд┐ рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рд▓реЗ a рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ GROUP BY рдЦрдгреНрдб, рдЕрджреНрд╡рд┐рддреАрдп рдХреНрд▓рд╕реНрдЯрд░ рдЧрд░рд┐рдПрдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдХреЛ рдХреБрдЮреНрдЬреАрд▓реЗ рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрддрдореНрднрд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрдЫ GROUP BY рдЦрдгреНрдб

рдпреЛ рдпрд╣рд╛рдБ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рднрд╛рд░рддреАрдпрд╣рд░реВ рд╕рдВрд▓рдЧреНрди рдерд┐рдПрдирдиреН, рдХрд┐рдирднрдиреЗ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпреЛ рдпреЛрдЬрдирд╛ рдЕрдиреБрд╕рд╛рд░ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗ "рд╣рд╛рдореА рдереЛрд░реИ, рддрд░ рд░рд╛рдореНрд░реЛ рдЧрд░реНрдиреЗрдЫреМрдВред" рддреНрдпреЛ рд╣реЛ, рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рдореИрджрд╛рдирдорд╛ рдзреЗрд░реИ рдЦрд╛рдирд╣рд░реВ рдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реНрдерд╛рди рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА рдЫред рд╕рдмреИрднрдиреНрджрд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдХреБрд░рд╛ рдпреЛ рд╕реАрдорд╛ рд╣реЛ:

рджреГрд╢реНрдпрд▓реЗ рдХреЗрд╡рд▓ рдЖрдзрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрдкрд░реНрдЫ рдЬреБрди рджреГрд╢реНрдпрдХреЛ рд░реВрдкрдорд╛ рдПрдЙрдЯреИ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдЫрдиреНред рджреГрд╢реНрдпрд▓реЗ рдЕрдиреНрдп рджреГрд╢реНрдпрд╣рд░реВрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рд╕рдХреНрджреИрдиред

рд╣рд╛рдореНрд░реЛ рд╢рдмреНрджрд╛рд╡рд▓реАрдорд╛, рдпрд╕рдХреЛ рдорддрд▓рдм рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдЕрд░реНрдХреЛ рднреМрддрд┐рдХ рдХрд╛рд░реНрдпрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдХреНрджреИрдиред рдпрд╕рд▓реЗ рдХреЛрд▓реАрдорд╛ рд░рд╣реЗрдХрд╛ рд╕рдмреИ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛рд▓рд╛рдИ рдХрд╛рдЯреНрдЫред
рд╕рд╛рдереИ, рдпреЛ рд╕реАрдорд╛ (рд░ рдкрд╛рдардорд╛ рдердк) рд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд╛ рдХреЗрд╕рд╣рд░реВрд▓рд╛рдИ рдзреЗрд░реИ рдХрдо рдЧрд░реНрдЫ:

рджреГрд╢реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рдорд╛ SELECT рдХрдердирд▓реЗ рдирд┐рдореНрди Transact-SQL рддрддреНрд╡рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди:

COUNT
ROWSET рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ (OPENDATASOURCE, OPENQUERY, OPENROWSET, рд░ OPENXML)
OUTER рдЬреЛрдбрд┐рдиреНрдЫ(LEFT, RIGHTрд╡рд╛ FULL)

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

DISTINCT
STDEV, STDEVP, VAR, VARPрд╡рд╛ AVG
рд╕рд╛рдЭрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (CTE)

рдлреНрд▓реЛрдЯ1, рдкрд╛рда, ntext, рдЫрд╡рд┐, XMLрд╡рд╛ рдлрд╛рдЗрд▓рд╕реНрдЯреНрд░рд┐рдо рд╕реНрддрдореНрднрд╣рд░реВ
рд╕рдмрдХреНрд╡реЗрд░реА
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

OUTER JOINS, UNION, ORDER BY рд░ рдЕрд░реВрд▓рд╛рдИ рдирд┐рд╖реЗрдз рдЧрд░рд┐рдПрдХреЛ рдЫред рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдирд╕рдХрд┐рдиреЗ рднрдиреНрджрд╛ рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреЗрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрди рд╕рдХреНрдЫред рд╕реВрдЪреА рд╕рд╛рдпрдж рдзреЗрд░реИ рдЫреЛрдЯреЛ рд╣реБрдиреЗрдЫред

рд╕рдВрдХреНрд╖реЗрдкрдорд╛: LGPL рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреАрдорд╛ DBMS рдмрдирд╛рдо рдХреБрдиреИ рдкрдирд┐ (рдПрдХ рддрд╛рд░реНрдХрд┐рдХ, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЕрдкрд╡рд╛рдж рдмрд╛рд╣реЗрдХ) рдкреНрд░рддреНрдпреЗрдХрдорд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕реЗрдЯ (рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдиреЛрдЯ рдЧрд░реМрдВ)ред рдпрджреНрдпрдкрд┐, рдпреЛ рдзреНрдпрд╛рди рджрд┐рдиреБ рдкрд░реНрдЫ рдХрд┐ рдпрд╕ рд╕рдВрдпрдиреНрддреНрд░рд▓рд╛рдИ рд░рд┐рд▓реЗрд╢рдирд▓ рддрд░реНрдХрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХрдорд╛ рднрдиреНрджрд╛ рдХреЗрд╣рд┐ рдмрдвреА рдЧрд╛рд╣реНрд░реЛ рдЫред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдпрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ? PostgreSQL рд▓рд╛рдИ "рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди" рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╣рд╛рдБ рднрд┐рддреНрд░ рдПрдЙрдЯрд╛ рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЫ рдЬрд╕рд▓реЗ рдкреНрд░рд╢реНрдирд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрдЫред рдпрд╣рд╛рдБ рдореБрд╣рд╛рдиред рд░ рддреНрдпрд╣рд╛рдБ ifs рдХреЛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕рдВрдЧ heuristics рдХреЛ рдПрдХ рдареВрд▓реЛ рд╕реЗрдЯ рдорд╛рддреНрд░ рдЫреИрдиред рддреНрдпрд╕реЛрднрдП, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рдХреЗрд╣рд┐ рдорд╣рд┐рдирд╛ рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдмреБрдЭреНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

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

рдирд┐рдореНрди рд▓реЗрдЦрд╣рд░реВрдорд╛, рдо рддрдкрд╛рдЗрдБ рдХрд╕рд░реА рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдкрд░рд┐рд╡рд░реНрддрди рд╕рддреНрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдзреЗрд░реИ рдХреБрд░рд╛рд╣рд░реВ рдмрд╛рд░реЗ рдкрдирд┐ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди