{"id":366513,"date":"2024-05-21T03:01:22","date_gmt":"2024-05-21T03:01:22","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=366513"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-05-21T03:01:22","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=366513","title":{"rendered":"<span>SQL: 15 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043c\u044b \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 SQL \u0438 T-SQL. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b SQL \u0438 T-SQL, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0442\u043e\u0447\u0438\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. <\/p>\n<p>\u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u043c \u0438\u043b\u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u044d\u0442\u0438 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c.  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0432\u044b\u043a\u0438, \u0440\u0435\u0448\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u0412 \u043c\u043e\u0435\u043c\u00a0<a href=\"https:\/\/t.me\/+I-mvvGbYRaI2ZTQ6\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043d\u0430\u043b\u0435<\/a>\u00a0\u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 SQL \u0437\u0430\u0434\u0430\u0447 \u0441 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b \u0438 \u0443\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432<\/p>\n<p>\u0410\u00a0<a href=\"https:\/\/t.me\/addlist\/2Ls-snqEeytkMDgy\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c \u0446\u0435\u043b\u0430\u044f \u043f\u0430\u043f\u043a\u0430<\/a>\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432.<\/p>\n<p>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL  \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u044f\u0437\u044b\u043a\u043e\u043c SQL. \u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0441\u043f\u0435\u043a\u0442\u0440 \u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443, \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446. \u041a\u0430\u0436\u0434\u043e\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.<\/p>\n<p>\u041f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043d\u0430\u0447\u043d\u0451\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<h2>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 1<\/h2>\n<p>\u0414\u0430\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.\u00a0<code>EMI\u00a0<\/code>\u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439\u00a0<code>EMI\u00a0<\/code>\u0441 23 \u043c\u0430\u0440\u0442\u0430. \u0414\u0440\u0443\u0433\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a\u00a0<code>EMD<\/code>, \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dcf\/a3f\/2b4\/dcfa3f2b4cf33c2bc585bf2ab2346524.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"536\" height=\"336\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">DROP TABLE IF EXISTS #Movements CREATE TABLE #Movements ( CreateDate date, EventCode nvarchar(3) ) INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-20', 'EMA') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-21', 'EMD') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-22', 'EMD') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-22', 'EMF') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-23', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-24', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-25', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-26', 'EMI') SELECT * FROM #Movements<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u044b\u0448\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<pre><code class=\"sql\">select t.* from #Movements t LEFT JOIN ( SELECT EventCode, MIN(CreateDate) as CreateDate FROM #Movements WHERE EventCode = 'EMI' GROUP BY EventCode ) s on s.EventCode = t.EventCode and t.CreateDate > s.CreateDate where s.CreateDate is null<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 2<\/h3>\n<p>\u0414\u0430\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e \u0446\u0435\u043d\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0437\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0430\u0442\u044b.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/324\/a9d\/975\/324a9d97553e06cf98a878a3e477f59e.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"233\" height=\"210\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c, \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b\u00a0<code>DataEnd\u00a0<\/code>\u0431\u044b\u043b\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0434\u0435\u043d\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u0434\u0430\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12d\/de7\/311\/12dde731133db3eb1b9e725271864481.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"421\" height=\"227\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table ##sales(  item int,  date date,  price int ) insert into ##sales(item, date, price) values (1,'2021-05-01', 200), (1,'2021-06-11', 210), (1,'2021-06-27', 225), (1,'2021-08-01', 250), (2,'2021-02-10', 600), (2,'2021-04-21', 650), (2,'2021-06-17', 675), (2,'2021-07-23', 700)<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<pre><code class=\"sql\">select item, date as DateStart, price, lead(date,1, GETDATE()) over (partition by item order by date ) DateEnd from ##sales<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 3<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c 3 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435\u00a0<code>tables<\/code>,\u00a0<code>years\u00a0<\/code>\u0438\u00a0<code>codes<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0442\u0440\u0451\u0445 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e05\/ee1\/48f\/e05ee148fd6e25a9f488136c57050423.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"328\" height=\"432\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">declare @tables table (year int, code int, import decimal(5,2)) insert into @tables values (2019,390107,10.00), (2021,390107,175.00), (2022,390107,102.00), (2022,470101,101.00), (2022,53015101,140.00) declare @years table (year int) insert into @years values (2018), (2019), (2020), (2021), (2022) declare @codes table (code int) insert into @codes values (390107), (470101), (470103), (471103), (53010101), (53015101)<\/code><\/pre>\n<p>\u042f \u0445\u043e\u0447\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>import\u00a0<\/code>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 (return import = 0, \u0433\u0434\u0435 \u043d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0433\u043e\u0434\u0430 \u0438 \u043a\u043e\u0434\u0430).<\/p>\n<p>\u0418\u043c\u0435\u044f 6 codes \u0438 5 years, \u044f \u043e\u0436\u0438\u0434\u0430\u044e 30 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (\u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0433\u043e\u0434\u0430 \u0438 \u043a\u043e\u0434\u0430) \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00a0<code>import\u00a0<\/code>\u0438\u0437 <a class=\"mention\" href=\"\/users\/table\">@table<\/a>e\u201d \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438\u00a0<code>year<\/code>\/\u00a0<code>code<\/code>(\u0438\u043b\u0438 0, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430).<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/340\/5ff\/7fd\/3405ff7fdfc6645d040b81cd8134b424.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"311\" height=\"658\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u043e\u0431\u044a\u0451\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0437\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0433\u043e\u0434 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445\u00a0<code><a class=\"mention\" href=\"\/users\/years\">@years<\/a><\/code>\u00a0\u0438\u00a0<code><a class=\"mention\" href=\"\/users\/codes\">@codes<\/a><\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code><a class=\"mention\" href=\"\/users\/table\">@table<\/a><\/code>. \u041e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0435\u0440\u0435\u043a\u0440\u0451\u0441\u0442\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (CROSS JOIN) \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u00a0<code><a class=\"mention\" href=\"\/users\/years\">@years<\/a><\/code>\u00a0\u0438\u00a0<code><a class=\"mention\" href=\"\/users\/codes\">@codes<\/a><\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 LEFT JOIN \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0438\u0437\u00a0<code><a class=\"mention\" href=\"\/users\/table\">@table<\/a><\/code>.<\/p>\n<pre><code class=\"sql\">SELECT Y.year, C.code, ISNULL(T.import, 0) AS import FROM   @years Y CROSS JOIN @codes C LEFT JOIN @table T ON T.year = Y.year AND T.code = C.code order by y.year<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 4<\/h3>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u0435 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"sql\">Delete from sales where ImportLogId = @ImportLogid<\/code><\/pre>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u00a0<code>ImportLog<\/code>\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043a\u043e\u043b\u043e 3 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u00a0<code>ImportLog<\/code>\u00a0\u0432 ImportLogID. \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 10%, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0427\u0435\u0440\u0435\u0437 \u0434\u0435\u043d\u044c \u0442\u0430 \u0436\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0412\u043e\u0442 \u043f\u043b\u0430\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/477\/58a\/3ae\/47758a3ae5bc08e27a5f825cb67f647a.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"828\" height=\"229\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0434\u0430\u0436\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432\u00a0<code>WholesalerSale<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443:<\/p>\n<pre><code class=\"sql\">CREATE INDEX IX_WholesalerSale_ImportSaleId ON WholesalerSales (ImportSaleId);<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 5<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0<code>Employee<\/code>\u00a0. \u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0438\u0436\u0435, \u043a\u0430\u043a \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434?<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7cb\/723\/cc0\/7cb723cc060cbe45b528fdcbe1354adc.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"500\" height=\"257\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table ##Employee ( id int identity(1,1) primary key, name varchar(255), paymenttype varchar(255), payment bigint ) insert into ##Employee (name, paymenttype, payment) values ('John  ',       'Salary' ,     100), ('Peter ',       'Salary' ,     100), ('John  ',       'Bonus ' ,     20 ), ('Russel',       'Salary' ,     100), ('Bill  ',       'Salary' ,     100), ('Bill  ',       'Bonus ' ,     40 ), ('John  ',       'Salary' ,     100)<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438 \u0431\u043e\u043d\u0443\u0441\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u00a0<code>##Employee<\/code>. \u041e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>SUM<\/code>\u00a0\u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<code>CASE<\/code>. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u00a0<code>CASE\u00a0<\/code>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>PaymentType\u00a0<\/code>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>Payment<\/code>, \u0435\u0441\u043b\u0438 \u0442\u0438\u043f\u043e\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u2018\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430\u2019, \u043b\u0438\u0431\u043e \u2018\u0411\u043e\u043d\u0443\u0441\u2019, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0.<\/p>\n<pre><code class=\"sql\">SELECT Name, SUM(CASE WHEN PaymentType = 'Salary' THEN Payment ELSE 0 END) AS Salary, SUM(CASE WHEN PaymentType = 'Bonus'  THEN Payment ELSE 0 END) AS Bonus FROM ##Employee GROUP BY Name;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 6<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0<code>Ingresaron<\/code>\u00a0\u0438\u00a0<code>Salieron<\/code>:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1ad\/050\/a03\/1ad050a0387aebcd8f947a69e7380b93.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"369\" height=\"148\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/91d\/80e\/4a2\/91d80e4a24151063d57ec6321c733192.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"378\" height=\"144\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/558\/0f5\/3ac\/5580f53aca363b86fb0e059f6fd731a7.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"478\" height=\"166\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table Ingresaron (DepartmentId int,Fecha_Lunes date,Entraron int); insert into Ingresaron (DepartmentId,Fecha_Lunes,Entraron) values (26,'2022-08-01',1), (26,'2022-08-15',2), (26,'2022-08-22',3), (26,'2022-08-08',3); create table Salieron (DepartmentId int,Fecha_Lunes date,Salieron int); insert into Salieron (DepartmentId,Fecha_Lunes,Salieron) values (26,'2022-08-15',3), (26,'2022-08-22',4), (26,'2022-08-08',2), (26,'2022-08-29',1);<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>FULL JOIN<\/code>\u00a0\u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u00a0<code>ingresaron\u00a0<\/code>\u0438\u00a0<code>Salieron<\/code>. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>FULL JOIN<\/code>\u00a0\u0432\u0435\u0440\u043d\u0451\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u043e\u0431\u0435\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<pre><code class=\"sql\">select coalesce(ing.DepartmentId, s.DepartmentId) as DepartmentId, coalesce(ing.Fecha_lunes, s.Fecha_lunes) as Fecha_lunes, s.Salieron, ing.Entraron from ingresaron ing full join Salieron s on ing.DepartmentId = s.DepartmentId and ing.Fecha_lunes = s.Fecha_lunes;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 7<\/h3>\n<p>\u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cc1\/f13\/608\/cc1f13608598d840c4b8aab0adf0a5bb.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"428\" height=\"376\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/09b\/773\/8e2\/09b7738e2b496e29209ac3dde55e689f.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"460\" height=\"292\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (CTE) \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>. CTE \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446\u00a0<code>name\u00a0<\/code>\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<code>ROW_NUMBER\u00a0<\/code>\u0434\u043b\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u00a0<code>name<\/code>. \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0435\u0446\u00a0<code>row_numbers\u00a0<\/code>\u0431\u043e\u043b\u044c\u0448\u0435 1. \u042d\u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0451\u043d \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>.<\/p>\n<pre><code class=\"sql\">with cte as( SELECT [name] ,row_numbers=ROW_NUMBER() OVER(PARTITION BY [name] ORDER BY [name]) FROM [dbo].[person] ) DELETE FROM CTE WHERE row_numbers > 1 select name from [dbo].[person]<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 8<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0434\u0430\u0442\u044b \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u0423\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435: \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0434\u044a\u0451\u043c\u0430, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c 2022-12-01 \u043d\u0430 \u044d\u0442\u0443 \u0434\u0430\u0442\u0443.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/235\/df2\/88a\/235df288a49516f3d50d36fa7a6d334b.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"828\" height=\"341\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">Create Table #table_name([date] DATE, [count] INT); Insert Into #table_name Values ('2022-12-04',1), ('2022-12-03',2), ('2022-12-02',1), ('2022-12-01',3), ('2022-11-30',1), ('2022-11-29',1), ('2022-11-28',1), ('2022-11-27',2);<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0446\u044b\u00a0<code>dt\u00a0<\/code>\u0438\u00a0<code>count_sum<\/code>, \u043f\u0440\u0438\u0447\u0451\u043c\u00a0<code>dt\u00a0<\/code>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u043d\u043e\u0439 \u0434\u0430\u0442\u043e\u0439, \u043b\u0438\u0431\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u043c \u0438 \u0433\u043e\u0434\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u0442\u044b \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435\u00a0<code>date<\/code>, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0435\u043d\u044c \u0434\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u043d\u0451\u043c \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043d\u0451\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00a0<code>date\u00a0<\/code>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430,\u00a0<code>date\u00a0<\/code>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0438\u0434\u0430\u00a0<code>'YYYY-MM-DD'<\/code>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>Cast<\/code>. \u0415\u0441\u043b\u0438 \u0434\u0435\u043d\u044c \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u043d\u0435\u043c \u043c\u0435\u0441\u044f\u0446\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>Format\u00a0<\/code>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00a0<code>date\u00a0<\/code>\u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0438\u0434\u0430\u00a0<code>'YYYY-MM'<\/code>.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u00a0<code>check_date\u00a0<\/code>\u0437\u0430\u0442\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u00a0<code>dt<\/code>, \u0430 \u0441\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u00a0<code>count\u00a0<\/code>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>sum<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u00a0<code>dt\u00a0<\/code>\u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0443\u0431\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u00a0<code>order by<\/code>.<\/p>\n<pre><code class=\"sql\">with check_date as ( select case when Day([date])=1 Then Cast([date] as varchar(10)) else Format([date], 'yyyy-MM') end As dt, [count] from #table_name ) select dt, sum([count]) as count_sum from check_date group by dt order by dt desc<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 9<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u00a0<code>Doctor<\/code>,\u00a0<code>Case_Number\u00a0<\/code>\u0438\u00a0<code>Field<\/code>. \u041c\u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0436\u0435\u043b\u0430\u0435\u043c\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e\u00a0<code>Case_Number\u00a0<\/code>\u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u043e\u043b\u0435\u0439 \u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0432\u0440\u0430\u0447 \u0441\u0434\u0435\u043b\u0430\u043b \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b02\/8ce\/c58\/b028cec583ea419d1e4b7a0df646c2e8.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"828\" height=\"219\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">DECLARE @Cases TABLE ( CaseID INT IDENTITY, Doctor NVARCHAR(50), Case_Number INT, Field NVARCHAR(50) ) INSERT INTO @Cases (Doctor, Case_Number, Field) VALUES ('Brian', 2234, 'Injection'), ('Brian', 2234, 'Surgery  '), ('Flor ', 2234, 'Surgery  '), ('Flor ', 2234, 'Discharge'), ('Brian', 1156, 'Injection'), ('Brian', 3459, 'Surgery  '), ('Flor ', 3459, 'Surgery  '), ('Brian', 3459, 'H-Test   ')<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0421\u0442\u043e\u043b\u0431\u0446\u044b\u00a0<code>Injection<\/code>,\u00a0<code>Surgery<\/code>,\u00a0<code>H-Test<\/code>\u00a0\u0438\u00a0<code>Discharge<\/code>\u00a0\u0432\u044b\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>MAX<\/code>\u00a0\u0441 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<code>CASE<\/code>. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u00a0<code>CASE\u00a0<\/code>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>field\u00a0<\/code>\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u2018X\u2019, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438 \u2018 \u2018 (\u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0431\u0435\u043b), \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>MAX\u00a0<\/code>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2018X\u2019 \u0432\u044b\u0431\u0440\u0430\u043d\u043e, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0438 \u2018 \u2018 \u0432\u044b\u0431\u0440\u0430\u043d\u043e, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435\u0442. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>MAX\u00a0<\/code>\u0432\u0435\u0440\u043d\u0451\u0442 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0440\u0435\u0434\u0438 \u0441\u0432\u043e\u0438\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2018X\u2019, \u043e\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043e, \u0430 \u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2018 \u2018.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u00a0<code>doctor<\/code>\u00a0\u0438\u00a0<code>case_number<\/code>, \u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u00a0<code>doctor<\/code>\u00a0\u0438\u00a0<code>case_number<\/code>, \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u043c, \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u043e \u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u00a0<code><a class=\"mention\" href=\"\/users\/Cases\">@Cases<\/a><\/code>.<\/p>\n<pre><code class=\"sql\">SELECT doctor, case_number, MAX(CASE WHEN field = 'Injection' THEN 'X' ELSE ' ' END) AS Injection, MAX(CASE WHEN field = 'Surgery' THEN 'X' ELSE ' ' END  ) AS Surgery, MAX(CASE WHEN field = 'H-Test' THEN 'X' ELSE ' ' END   ) AS [H-Test], MAX(CASE WHEN field = 'Discharge' THEN 'X' ELSE ' ' END) AS Discharge FROM @Cases GROUP BY doctor, case_number<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 10<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u00a0<code>firstDate<\/code>,\u00a0<code>LastDate\u00a0<\/code>\u0438\u00a0<code>Code<\/code>. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0432\u0437\u044f\u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u0434\u0430\u0442\u0443 \u0438\u0437 1-\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0434\u0430\u0442\u0443 \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4af\/2d8\/a4a\/4af2d8a4ab367d979a07f7812b5fd492.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"828\" height=\"283\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<pre><code class=\"sql\">CREATE TABLE ABCD( id int, FirstDate date, LastDate date, code varchar(23) ); Insert into ABCD VALUES (1, '2022-12-12','2022-12-12', 'A'), (2, '2022-12-13','2022-12-13', 'A'), (3, '2022-12-15','2022-12-15', 'A'), (4, '2022-12-16','2022-2-16', 'B'), (5, '2022-12-18','2022-12-18', 'A'), (5, '2022-12-19','2022-12-19', 'A'), (6, '2022-12-20','2022-12-20', 'C')<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412\u043e\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"sql\">WITH ABCD_with_newvals AS (SELECT *, CASE WHEN LAG(code, 1) OVER (ORDER BY id) = [code] THEN 0 ELSE 1 END AS NewVal FROM ABCD ), ABCD_grouped AS (SELECT *, SUM(NewVal) OVER (ORDER BY id) AS GroupNum FROM ABCD_with_newvals ) SELECT GroupNum, Code, MIN(FirstDate) AS FirstDate, MAX(LastDate) AS LastDate FROM ABCD_grouped GROUP BY GroupNum, Code ORDER BY GroupNum;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 11<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438\u00a0<code>countx<\/code>,\u00a0<code>code\u00a0<\/code>\u0438\u00a0<code>col3<\/code>. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u0427\u0442\u043e\u0431\u044b \u0432\u043d\u0435\u0441\u0442\u0438 \u044f\u0441\u043d\u043e\u0441\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043a\u043e\u0434\u0430 \u0438 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u043a\u043e\u0434\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b65\/367\/7b5\/b653677b5db797aa3613cf844ff643af.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"590\" height=\"242\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">CREATE TABLE test( countx int, code char(1), col3 char(3) ); insert into test values (2,'A','xyz'), (3,'A','1'), (4,'A','f'), (4,'B','d'), (5,'B','2'), (6,'B','yz')<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u043a\u043e\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>SUM()<\/code>\u00a0\u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<code>OVER()<\/code>\u00a0\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<code>PARTITION BY<\/code>.<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>SUM()<\/code>\u00a0\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u00a0<code>countx\u00a0<\/code>\u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>OVER()<\/code>\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043e\u043a\u043d\u043e \u0438\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>PARTITION BY<\/code>\u00a0\u0434\u0435\u043b\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u044b, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0<code>SUM()<\/code>.<\/p>\n<p>\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>SELECT\u00a0<\/code>\u0438\u0437\u0432\u043b\u0435\u043a\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443\u00a0<code>countx\u00a0<\/code>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e\u00a0<code>code\u00a0<\/code>\u0432 \u0432\u0438\u0434\u0435\u00a0<code>countx_sum<\/code>, \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>code\u00a0<\/code>\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>col3\u00a0<\/code>\u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0421\u0442\u0440\u043e\u043a\u0438 \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u044b \u043f\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0443 \u043a\u043e\u0434\u0430.<\/p>\n<pre><code>SELECT SUM(countx) OVER (PARTITION BY code) AS countx_sum, code, col3 FROM test ORDER BY code;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 12<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438\u00a0<code>id<\/code>,\u00a0<code>line\u00a0<\/code>\u0438\u00a0<code>cost<\/code>. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u0427\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u044f \u0445\u043e\u0447\u0443 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u0439 \u043d\u0438\u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0442\u0440\u043e\u043a\u0430 3 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 2, \u0432\u0435\u0434\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435\u0445 3 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b. \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0438 \u043a\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u0441\u0442\u0440\u043e\u043a\u0430 7 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d\u0430 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 6. \u041e\u0431\u0449\u0430\u044f \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c 10 \u0434\u043e\u043b\u043b\u0430\u0440\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/732\/e2d\/220\/732e2d220d4db48093c144e51a72dc7c.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"817\" height=\"245\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">DECLARE @vClaims TABLE ( ClaimID     NVARCHAR(16), ClaimLine   SMALLINT, Cost        SMALLINT ) INSERT INTO @vClaims VALUES ('M0001R1616878951', 2, 10), ('M0001R1616878951', 2, -10), ('M0001R1616878951', 2, -10), ('M0001R1616878951', 3, 10), ('M0001R1616878951', 3, -10), ('M0001R1616878951', 3, 10), ('M0001R1616878951', 3, 10)<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"sql\">;WITH CTE_ClaimsWithSort AS ( SELECT id  , line, cost, RowNumber   = ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) FROM @test ), CTE_ClaimsFiltered AS ( SELECT id   , line , cost , RowNumber, isDuplicate     = IIF( LAG(id) OVER(ORDER BY RowNumber) = id AND LAG(line) OVER(ORDER BY RowNumber) = line AND LAG(cost) OVER(ORDER BY RowNumber) = cost , 1, 0) FROM  CTE_ClaimsWithSort ) SELECT id, line, cost, RowNumber, isDuplicate FROM   CTE_ClaimsFiltered WHERE isDuplicate = 0<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 13<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0<code>Location<\/code>. \u0414\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u042f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f78\/aac\/544\/f78aac5448c5c2d69caeb4af408a9b52.webp\" alt=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" title=\"13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438\" width=\"604\" height=\"228\"\/><\/p>\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">create table location( RecordId int, Location varchar(10)) insert into location select 1 , '\/21\/s15' insert into location select 2   , '8\/1\/21c59' insert into location select 3   , '1\/\/' insert into location select 4   , '9\/\/72'<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<pre><code class=\"sql\">create or alter function fnBuildABC@locationn varchar(10)) returns table as return select Left(location, p1.v - 1) A, Substring(location, p1.v + 1, p2.v - p1.v - 1) B, Stuff(location,1, p2.v , '') C from (select location = @Location)l cross apply(values(CharIndex('\/', location)))p1(v) cross apply(values(CharIndex('\/', location, p1.v + 1)))p2(v); select A, B, C from Location cross apply fnBuildABC(Location);<\/code><\/pre>\n<h4>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 14<\/h4>\n<p>\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0441\u0442\u0430\u0442\u0443\u0441\u0430 (\u0443\u0441\u043f\u0435\u0448\u043d\u0430\u044f \/ \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f) \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u0435\u0442\u043a\u0438<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/027\/da5\/d55\/027da5d55cd70b4baa2bc5ceb1e716ff.jpg\" width=\"1280\" height=\"742\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/027\/da5\/d55\/027da5d55cd70b4baa2bc5ceb1e716ff.jpg\" data-blurred=\"true\"\/><\/figure>\n<p>\u0417\u0430\u0434\u0430\u0447\u0443 \u0447\u0430\u0441\u0442\u043e \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 \u0432 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0435 \u201c\u043a\u0430\u043a \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438 \/ \u043a\u043e\u043f\u0438\u0438 \u0441\u0442\u0440\u043e\u043a\u201d, \u0438 \u0440\u0435\u0448\u0438\u0442\u044c \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u042f \u043f\u0440\u0438\u0432\u044b\u043a \u043c\u044b\u0441\u043b\u0438\u0442\u044c \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043c\u043d\u0435 \u043d\u0438 \u043a \u0447\u0435\u043c\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u044e\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <code>ROWNUMBER(<\/code>).<\/p>\n<h4>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h4>\n<pre><code class=\"sql\">with decoded as ( select \"transaction_id\" ,\"is_successful\" ,\"ts\" ,decode(\"is_successful\", 'true', 0, 'false', 1, 2) as \"order_is_successful\" from transactions ), ordered as ( select \"transaction_id\" ,\"is_successful\" ,\"ts\" ,row_number() over(partition by \"transaction_id\" order by \"order_is_successful\" asc, \"ts\" desc) as rn from decoded ) select \"transaction_id\" ,\"is_successful\" ,\"ts\" from ordered where rn = 1 ; <\/code><\/pre>\n<h2>\u0417\u0430\u0434\u0430\u0447\u0430 15 <\/h2>\n<p><strong>\u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c<\/strong><\/p>\n<p>\u041d\u0430\u043f\u0438\u0448\u0438 <strong>SQL-\u043a\u043e\u0434,<\/strong> \u0432\u044b\u0432\u043e\u0434\u044f\u0449\u0438\u0439 \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u0435\u0441\u044f\u0446 \u0432 \u0432\u0438\u0434\u0435:<\/p>\n<p><code>\u041f\u043d \u0412\u0442 \u0421\u0440 \u0427\u0442 \u041f\u0442 \u0421\u0431 \u0412\u0441<\/code><\/p>\n<p><code>|\u00a0 \u00a0 |\u00a0 \u00a0 |\u00a0 \u00a0 |\u00a0 \u00a0 | 1\u00a0 | 2\u00a0<\/code><\/p>\n<p><code>3 | 4 | 5 | 6 | 7 | 8 | 9 10 | 11 | 12 | 13 | 14 | 15 | 16 17 | 18 | 19 | 20 | 21 | 22 | 23 24 | 25 | 26 | 27 | 28 | 29 | 30<\/code><\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/strong><\/p>\n<pre><code class=\"sql\">with  current_date as (         select trunc(sysdate) as cd from dual      ),  t as (         select              cd as today,             trunc(cd, 'MM') as first_day_of_month,             add_months(trunc(cd, 'MM'), 1) - 1 as last_day_of_month,             to_char(trunc(cd, 'MM'), 'IW') as week_of_fdm,             to_char(add_months(trunc(cd, 'MM'), 1) - 1, 'IW') as week_of_ldm         from current_date     ),   days_set as (         select              level as lvl,              t.first_day_of_month -7 + level-1 as day,              to_char(t.first_day_of_month -7 + level-1, 'IW') as week_id         from t         connect by (t.first_day_of_month -7 + level-1) &lt; (t.last_day_of_month +7)      ),      days_and_week as (         select              days_set.lvl,              case                  when days_set.day between t.first_day_of_month and t.last_day_of_month                      then lpad(ltrim(to_char(days_set.day, 'DD'), '0'), 2, ' ')                 when days_set.day &lt; t.first_day_of_month                      then '  '                 when days_set.day > t.last_day_of_month                     then '  '                  else ''             end as dd,              week_id         from days_set, t         where days_set.week_id between t.week_of_fdm and week_of_ldm     )  select      '\u043f\u043d | \u0432\u0442 | \u0441\u0440 | \u0447\u0442 | \u043f\u0442 | \u0441\u0431 | \u0432\u0441' as calendar from dual   union all  select       listagg(dd, ' | ') within group(order by lvl) from days_and_week group by week_id ;<\/code><\/pre>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.  <\/p>\n<p>\u0412\u043e\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438:\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/74948577\/alter-row-based-on-column\" rel=\"noopener noreferrer nofollow\">link1<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/74937364\/how-can-i-group-and-sum-data-by-day-using-t-sql\" rel=\"noopener noreferrer nofollow\">link2<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/74927194\/pivot-rows-into-columns-to-create-a-new-table-with-one-row-per-grouped-value\" rel=\"noopener noreferrer nofollow\">link3<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/74758150\/aggregate-in-sql-server\" rel=\"noopener noreferrer nofollow\">Link4<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/72184543\/delete-operation-is-slow-and-rebuilding-index-doesnt-seems-to-solve-the-issue\/72198079#72198079\" rel=\"noopener noreferrer nofollow\">Link5<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/73257238\/fetch-data-from-multiple-result-sets-sql-server-to-python\" rel=\"noopener noreferrer nofollow\">Link6<\/a>,\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/75887771\/in-microsoft-sql-server-how-to-keep-distinct-rows-for-only-a-specific-value\" rel=\"noopener noreferrer nofollow\">Link7<\/a>, <a href=\"https:\/\/uproger.com\/sql-dorozhnaya-karta-2024-goda\/\" rel=\"noopener noreferrer nofollow\">Link8<\/a>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 7<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/789420\/\"> https:\/\/habr.com\/ru\/articles\/789420\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043c\u044b \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 SQL \u0438 T-SQL. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u0438\u0445 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b SQL \u0438 T-SQL, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0442\u043e\u0447\u0438\u0442\u044c \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. <\/p>\n<p>\u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0435\u0441\u044c \u043b\u0438 \u0432\u044b \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u043c \u0438\u043b\u0438 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c, \u044d\u0442\u0438 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0443\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u043c.  \u0421\u0442\u0430\u0442\u044c\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0437\u043d\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0432\u044b\u043a\u0438, \u0440\u0435\u0448\u0430\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>\u0412 \u043c\u043e\u0435\u043c\u00a0<a href=\"https:\/\/t.me\/+I-mvvGbYRaI2ZTQ6\" rel=\"noopener noreferrer nofollow\">\u043a\u0430\u043d\u0430\u043b\u0435<\/a>\u00a0\u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 SQL \u0437\u0430\u0434\u0430\u0447 \u0441 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439, \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0433\u0430\u0439\u0434\u044b \u0438 \u0443\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432<\/p>\n<p>\u0410\u00a0<a href=\"https:\/\/t.me\/addlist\/2Ls-snqEeytkMDgy\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c \u0446\u0435\u043b\u0430\u044f \u043f\u0430\u043f\u043a\u0430<\/a>\u00a0\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432.<\/p>\n<p>\u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL  \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0432\u044b\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u044f\u0437\u044b\u043a\u043e\u043c SQL. \u0423\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0442 \u0448\u0438\u0440\u043e\u043a\u0438\u0439 \u0441\u043f\u0435\u043a\u0442\u0440 \u0442\u0435\u043c, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u044b\u0431\u043e\u0440\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445, \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e, \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443, \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446. \u041a\u0430\u0436\u0434\u043e\u0435 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0439, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.<\/p>\n<p>\u041f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u0438 \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0433\u0440\u0443\u0437\u0438\u043c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043d\u0430\u0447\u043d\u0451\u043c \u0440\u0435\u0448\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<h2>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 1<\/h2>\n<p>\u0414\u0430\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.\u00a0<code>EMI\u00a0<\/code>\u0434\u043e\u043b\u0436\u0435\u043d \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0435\u0440\u0432\u044b\u0439\u00a0<code>EMI\u00a0<\/code>\u0441 23 \u043c\u0430\u0440\u0442\u0430. \u0414\u0440\u0443\u0433\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a\u00a0<code>EMD<\/code>, \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">DROP TABLE IF EXISTS #Movements CREATE TABLE #Movements ( CreateDate date, EventCode nvarchar(3) ) INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-20', 'EMA') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-21', 'EMD') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-22', 'EMD') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-22', 'EMF') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-23', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-24', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-25', 'EMI') INSERT INTO #Movements (CreateDate,EventCode) VALUES ('2023-03-26', 'EMI') SELECT * FROM #Movements<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u0432\u044b\u0448\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<pre><code class=\"sql\">select t.* from #Movements t LEFT JOIN ( SELECT EventCode, MIN(CreateDate) as CreateDate FROM #Movements WHERE EventCode = 'EMI' GROUP BY EventCode ) s on s.EventCode = t.EventCode and t.CreateDate > s.CreateDate where s.CreateDate is null<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 2<\/h3>\n<p>\u0414\u0430\u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043e \u0446\u0435\u043d\u0430\u0445 \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u0442\u043e\u0432\u0430\u0440\u043e\u0432 \u0437\u0430 \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0430\u0442\u044b.<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c, \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b\u00a0<code>DataEnd\u00a0<\/code>\u0431\u044b\u043b\u0430 \u043d\u0430 \u043e\u0434\u0438\u043d \u0434\u0435\u043d\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u0434\u0430\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0446\u0435\u043d\u044b.<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table ##sales(  item int,  date date,  price int ) insert into ##sales(item, date, price) values (1,'2021-05-01', 200), (1,'2021-06-11', 210), (1,'2021-06-27', 225), (1,'2021-08-01', 250), (2,'2021-02-10', 600), (2,'2021-04-21', 650), (2,'2021-06-17', 675), (2,'2021-07-23', 700)<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<pre><code class=\"sql\">select item, date as DateStart, price, lead(date,1, GETDATE()) over (partition by item order by date ) DateEnd from ##sales<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 3<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c 3 \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435\u00a0<code>tables<\/code>,\u00a0<code>years\u00a0<\/code>\u0438\u00a0<code>codes<\/code>. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u0442\u0440\u0451\u0445 \u0442\u0430\u0431\u043b\u0438\u0446.<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">declare @tables table (year int, code int, import decimal(5,2)) insert into @tables values (2019,390107,10.00), (2021,390107,175.00), (2022,390107,102.00), (2022,470101,101.00), (2022,53015101,140.00) declare @years table (year int) insert into @years values (2018), (2019), (2020), (2021), (2022) declare @codes table (code int) insert into @codes values (390107), (470101), (470103), (471103), (53010101), (53015101)<\/code><\/pre>\n<p>\u042f \u0445\u043e\u0447\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u00a0<code>import\u00a0<\/code>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 (return import = 0, \u0433\u0434\u0435 \u043d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0433\u043e\u0434\u0430 \u0438 \u043a\u043e\u0434\u0430).<\/p>\n<p>\u0418\u043c\u0435\u044f 6 codes \u0438 5 years, \u044f \u043e\u0436\u0438\u0434\u0430\u044e 30 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 (\u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 \u0433\u043e\u0434\u0430 \u0438 \u043a\u043e\u0434\u0430) \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c\u00a0<code>import\u00a0<\/code>\u0438\u0437 <a class=\"mention\" href=\"\/users\/table\">@table<\/a>e\u201d \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438\u00a0<code>year<\/code>\/\u00a0<code>code<\/code>(\u0438\u043b\u0438 0, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044f \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430).<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0449\u0438\u0439 \u043e\u0431\u044a\u0451\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0437\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0433\u043e\u0434 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445\u00a0<code><a class=\"mention\" href=\"\/users\/years\">@years<\/a><\/code>\u00a0\u0438\u00a0<code><a class=\"mention\" href=\"\/users\/codes\">@codes<\/a><\/code>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code><a class=\"mention\" href=\"\/users\/table\">@table<\/a><\/code>. \u041e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0435\u0440\u0435\u043a\u0440\u0451\u0441\u0442\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (CROSS JOIN) \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u00a0<code><a class=\"mention\" href=\"\/users\/years\">@years<\/a><\/code>\u00a0\u0438\u00a0<code><a class=\"mention\" href=\"\/users\/codes\">@codes<\/a><\/code>, \u0430 \u0437\u0430\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 LEFT JOIN \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0438\u0437\u00a0<code><a class=\"mention\" href=\"\/users\/table\">@table<\/a><\/code>.<\/p>\n<pre><code class=\"sql\">SELECT Y.year, C.code, ISNULL(T.import, 0) AS import FROM   @years Y CROSS JOIN @codes C LEFT JOIN @table T ON T.year = Y.year AND T.code = C.code order by y.year<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 4<\/h3>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u0435 \u0440\u0435\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435:<\/p>\n<pre><code class=\"sql\">Delete from sales where ImportLogId = @ImportLogid<\/code><\/pre>\n<p>\u0422\u0430\u0431\u043b\u0438\u0446\u0430\u00a0<code>ImportLog<\/code>\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u043a\u043e\u043b\u043e 3 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0434\u0435\u043a\u0441, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u00a0<code>ImportLog<\/code>\u00a0\u0432 ImportLogID. \u0424\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 10%, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e \u0438\u043d\u0434\u0435\u043a\u0441 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0427\u0435\u0440\u0435\u0437 \u0434\u0435\u043d\u044c \u0442\u0430 \u0436\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0412\u043e\u0442 \u043f\u043b\u0430\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432 \u043f\u043e\u0438\u0441\u043a\u0435 \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438:<\/p>\n<figure class=\"full-width\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0434\u0430\u0436\u0438.<\/p>\n<p>\u041f\u0440\u043e\u0438\u043d\u0434\u0435\u043a\u0441\u0438\u0440\u0443\u0439\u0442\u0435 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u0432\u00a0<code>WholesalerSale<\/code>, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443:<\/p>\n<pre><code class=\"sql\">CREATE INDEX IX_WholesalerSale_ImportSaleId ON WholesalerSales (ImportSaleId);<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 5<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0<code>Employee<\/code>\u00a0. \u0418\u0441\u0445\u043e\u0434\u044f \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043d\u0438\u0436\u0435, \u043a\u0430\u043a \u044f \u043c\u043e\u0433\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434?<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table ##Employee ( id int identity(1,1) primary key, name varchar(255), paymenttype varchar(255), payment bigint ) insert into ##Employee (name, paymenttype, payment) values ('John  ',       'Salary' ,     100), ('Peter ',       'Salary' ,     100), ('John  ',       'Bonus ' ,     20 ), ('Russel',       'Salary' ,     100), ('Bill  ',       'Salary' ,     100), ('Bill  ',       'Bonus ' ,     40 ), ('John  ',       'Salary' ,     100)<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0438 \u0431\u043e\u043d\u0443\u0441\u043e\u0432 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u00a0<code>##Employee<\/code>. \u041e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>SUM<\/code>\u00a0\u0432 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0438 \u0441 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c\u00a0<code>CASE<\/code>. \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u00a0<code>CASE\u00a0<\/code>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>PaymentType\u00a0<\/code>\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u00a0<code>Payment<\/code>, \u0435\u0441\u043b\u0438 \u0442\u0438\u043f\u043e\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u2018\u0417\u0430\u0440\u043f\u043b\u0430\u0442\u0430\u2019, \u043b\u0438\u0431\u043e \u2018\u0411\u043e\u043d\u0443\u0441\u2019, \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0.<\/p>\n<pre><code class=\"sql\">SELECT Name, SUM(CASE WHEN PaymentType = 'Salary' THEN Payment ELSE 0 END) AS Salary, SUM(CASE WHEN PaymentType = 'Bonus'  THEN Payment ELSE 0 END) AS Bonus FROM ##Employee GROUP BY Name;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 6<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c\u00a0<code>Ingresaron<\/code>\u00a0\u0438\u00a0<code>Salieron<\/code>:<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<pre><code class=\"sql\">create table Ingresaron (DepartmentId int,Fecha_Lunes date,Entraron int); insert into Ingresaron (DepartmentId,Fecha_Lunes,Entraron) values (26,'2022-08-01',1), (26,'2022-08-15',2), (26,'2022-08-22',3), (26,'2022-08-08',3); create table Salieron (DepartmentId int,Fecha_Lunes date,Salieron int); insert into Salieron (DepartmentId,Fecha_Lunes,Salieron) values (26,'2022-08-15',3), (26,'2022-08-22',4), (26,'2022-08-08',2), (26,'2022-08-29',1);<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>FULL JOIN<\/code>\u00a0\u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u00a0<code>ingresaron\u00a0<\/code>\u0438\u00a0<code>Salieron<\/code>. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u00a0<code>FULL JOIN<\/code>\u00a0\u0432\u0435\u0440\u043d\u0451\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0437 \u043e\u0431\u0435\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0435\u0442 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<pre><code class=\"sql\">select coalesce(ing.DepartmentId, s.DepartmentId) as DepartmentId, coalesce(ing.Fecha_lunes, s.Fecha_lunes) as Fecha_lunes, s.Salieron, ing.Entraron from ingresaron ing full join Salieron s on ing.DepartmentId = s.DepartmentId and ing.Fecha_lunes = s.Fecha_lunes;<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 7<\/h3>\n<p>\u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>.<\/p>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<figure class=\"\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0431\u0449\u0435\u0435 \u0442\u0430\u0431\u043b\u0438\u0447\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 (CTE) \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>. CTE \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446\u00a0<code>name\u00a0<\/code>\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<code>ROW_NUMBER\u00a0<\/code>\u0434\u043b\u044f \u043f\u0440\u0438\u0441\u0432\u043e\u0435\u043d\u0438\u044f \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u00a0<code>name<\/code>. \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0435\u0446\u00a0<code>row_numbers\u00a0<\/code>\u0431\u043e\u043b\u044c\u0448\u0435 1. \u042d\u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0432\u0441\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u0438. \u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0435\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043c\u0451\u043d \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u00a0<code>person<\/code>.<\/p>\n<pre><code class=\"sql\">with cte as( SELECT [name] ,row_numbers=ROW_NUMBER() OVER(PARTITION BY [name] ORDER BY [name]) FROM [dbo].[person] ) DELETE FROM CTE WHERE row_numbers > 1 select name from [dbo].[person]<\/code><\/pre>\n<h3>\u0417\u0430\u0434\u0430\u043d\u0438\u0435 8<\/h3>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e \u0441\u0442\u043e\u043b\u0431\u0446\u0430\u043c\u0438 \u0434\u0430\u0442\u044b \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u042f \u0445\u043e\u0447\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u0440\u0438\u0441\u0443\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u0423\u0442\u043e\u0447\u043d\u0435\u043d\u0438\u0435: \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u0434\u044a\u0451\u043c\u0430, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c 2022-12-01 \u043d\u0430 \u044d\u0442\u0443 \u0434\u0430\u0442\u0443.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>13 \u0443\u043f\u0440\u0430\u0436\u043d\u0435\u043d\u0438\u0439 \u043f\u043e SQL \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"sql\">Create Table #table_name([date] DATE, [count] INT); Insert Into #table_name Values ('2022-12-04',1), ('2022-12-03',2), ('2022-12-02',1), ('2022-12-01',3), ('2022-11-30',1), ('2022-11-29',1), ('2022-11-28',1), ('2022-11-27',2);<\/code><\/pre>\n<h3>\u0420\u0435\u0448\u0435\u043d\u0438\u0435<\/h3>\n<p>\u042d\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u0431\u0446\u044b\u00a0<code>dt\u00a0<\/code>\u0438\u00a0<code>count_sum<\/code>, \u043f\u0440\u0438\u0447\u0451\u043c\u00a0<code>dt\u00a0<\/code>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0431\u043e \u043f\u043e\u043b\u043d\u043e\u0439 \u0434\u0430\u0442\u043e\u0439, \u043b\u0438\u0431\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u043c \u0438 \u0433\u043e\u0434\u043e\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u0442\u044b \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435\u00a0<code>date<\/code>, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u043e\u0433\u043e, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u0434\u0435\u043d\u044c \u0434\u0430\u0442\u044b \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u043d\u0451\u043c \u043c\u0435\u0441\u044f\u0446\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043d\u0451\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00a0<code>date\u00a0<\/code>\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430,\u00a0<code>date\u00a0<\/code>\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0438\u0434\u0430\u00a0<code>'YYYY-MM-DD'<\/code>\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>Cast<\/code>. \u0415\u0441\u043b\u0438 \u0434\u0435\u043d\u044c \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u043d\u0435\u043c \u043c\u0435\u0441\u044f\u0446\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<code>Format\u00a0<\/code>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u00a0<code>date\u00a0<\/code>\u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432\u0438\u0434\u0430\u00a0<code>'YYYY-MM'<\/code>.<\/p>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u00a0<code>check_date\u00a0<\/code>\u0437\u0430\u0442\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u043e\u00a0<code>dt<\/code>, \u0430 \u0441\u0443\u043c\u043c\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439\u00a0<code>count\u00a0<\/code>\u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<code>sum<\/code>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-366513","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=366513"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/366513\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=366513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=366513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=366513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}