{"id":267170,"date":"2015-10-30T15:56:03","date_gmt":"2015-10-30T12:56:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=267170"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=267170","title":{"rendered":"PostgreSQL 9.5: \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e? \u0427\u0430\u0441\u0442\u044c 3. GROUPING SETS, CUBE, ROLLUP"},"content":{"rendered":"<p>       \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 PostgreSQL 9.5. <br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/264281\/\">\u0427\u0430\u0441\u0442\u044c 1. INSERT\u2026 ON CONFLICT DO NOTHING\/UPDATE \u0438 ROW LEVEL SECURITY<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/266759\/\">\u0427\u0430\u0441\u0442\u044c 2. TABLESAMPLE<\/a><br \/>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u042d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0435\u0449\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 SQL-99. \u0415\u0451 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0432 <b>GROUP BY<\/b>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b <b>GROUPING SETS, ROLLUP, CUBE<\/b> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <b>GROUP BY<\/b>.<br \/>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0431\u043b\u0438\u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u041f\u0443\u0441\u0442\u044c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0445\u0435\u043c\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u0445, \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436 \u0438\u043c\u0435\u0435\u0442 \u0442\u0438\u043f, \u0433\u043e\u0440\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u044d\u0442\u043e\u0442 \u043f\u043b\u0430\u0442\u0435\u0436 \u0431\u044b\u043b \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d \u0438 \u0441\u0443\u043c\u043c\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0430. \u0413\u043e\u0440\u043e\u0434 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u0441\u0442\u0440\u0430\u043d\u0443 \u0438, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e, \u0440\u0435\u0433\u0438\u043e\u043d. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0439 \u0441\u0445\u0435\u043c\u044b \u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0435\u0451 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0445\u0435\u043c\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"sql\">DROP TABLE IF EXISTS payment; DROP TABLE IF EXISTS payment_type; DROP TABLE IF EXISTS city; DROP TABLE IF EXISTS state; DROP TABLE IF EXISTS country;  CREATE TABLE country (   id   SERIAL PRIMARY KEY,   name VARCHAR NOT NULL );   CREATE TABLE state (   id         SERIAL PRIMARY KEY,   name       VARCHAR NOT NULL,   country_id INT REFERENCES country (id) );   CREATE TABLE city (   id         SERIAL PRIMARY KEY,   name       VARCHAR NOT NULL,   state_id   INT     NULL REFERENCES state (id),   country_id INT     NOT NULL REFERENCES country (id),   population BIGINT  NOT NULL );   CREATE TABLE payment_type (   id   SERIAL PRIMARY KEY,   name VARCHAR NOT NULL );  CREATE TABLE payment (   id              BIGSERIAL PRIMARY KEY,   payment_type_id INT            NOT NULL REFERENCES payment_type (id),   city_id         INT            NOT NULL REFERENCES city (id),   amount          NUMERIC(10, 2) NOT NULL );  INSERT INTO country (name) VALUES ('Russia'), ('Ukraine');  INSERT INTO state (name, country_id) VALUES ('Moscow region', 1), ('Samara region', 1), ('Kursk region', 1), ('Tatarstan', 1),   ('Kiev region', 2), ('Lugansk region', 2), ('Lvov region', 2), ('Odessa region', 2);   \u2013- \u041c\u043e\u0441\u043a\u0432\u0430 \u0438 \u041a\u0438\u0435\u0432 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0439 \u0438 \u041a\u0438\u0435\u0432\u0441\u043a\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0430\u043c \u0420\u0424 \u0438 \u0423\u043a\u0440\u0430\u0438\u043d\u044b INSERT INTO city (name, state_id, country_id, population) VALUES ('Moscow', NULL, 1, 12197596), ('Dubna', 1, 1, 75176),   ('Samara', 2, 1, 1171820), ('Tolyatti', 2, 1, 719646), ('Syzran', 2, 1, 175222), ('Novokuybyshevsk', 2, 1, 105007),   ('Kursk', 3, 1, 435117),   ('Kazan', 4, 1, 1205651),   ('Kiev', NULL, 2, 2888470), ('Irpen', 5, 2, 39972), ('Borispol', 5, 2, 60102), ('Belaya Tserkov', 5, 2, 211205),   ('Lugansk', 6, 2, 417990), ('Lisichansk', 6, 2, 103459), ('Severodonetsk', 6, 2, 108899), ('Popasnaya', 6, 2, 21765),   ('Lvov', 7, 2, 729038), ('Drogobych', 7, 2, 76866),   ('Odessa', 8, 2, 1017022), ('Izmail', 8, 2, 72501);  INSERT INTO payment_type (name) VALUES ('Online'), ('Box office'), ('Terminal');   INSERT INTO payment (payment_type_id, city_id, amount)   SELECT     ceil(random() * 3),     ceil(random() * 20),     trunc(cast(random() * 10000 AS NUMERIC), 2)   FROM generate_series(1, 10000); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043e \u0441\u0443\u043c\u043c\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0433\u043e\u0440\u043e\u0434\u0435 \u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0435. \u0420\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432\u0438\u0434\u0430:  <\/p>\n<pre><code class=\"sql\">(SELECT sum(amount), c.country_id, NULL as city_id FROM payment AS p INNER JOIN city AS c ON p.city_id=c.id GROUP BY c.country_id ORDER BY c.country_id) UNION ALL (SELECT sum(amount), NULL, p.city_id FROM payment AS p GROUP BY p.city_id ORDER BY p.city_id) <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0421 \u0432\u0435\u0440\u0441\u0438\u0438 9.5 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u043e\u0449\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0430\u043a:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   c.country_id,   p.city_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(c.country_id, p.city_id); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, <b>GROUPING SETS<\/b> \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: \u0432 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 (\u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u0441\u043a\u043e\u0431\u043a\u0430\u0445) \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b NULL. \u041a\u043e\u043b\u043e\u043d\u043a\u0438 \u043d\u0435 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u0432 <b>GROUPING SETS<\/b>, \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e.<br \/>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438 \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 (\u0431\u0435\u0437 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438) \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u2014 <b>()<\/b>. \u041f\u0440\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0435 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0432 <b>GROUPING SETS<\/b> \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u044b NULL:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.city_id,   c.country_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, C.country_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>49932548.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0443\u043c\u043c\u0443 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u043f\u043e \u0433\u043e\u0440\u043e\u0434\u0430\u043c, \u0440\u0435\u0433\u0438\u043e\u043d\u0430\u043c \u0438 \u0441\u0442\u0440\u0430\u043d\u0430\u043c:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.city_id,   c.state_id,   c.country_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>10045331.82<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>8016888.1<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>10029073.22<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4822644.19<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4760592.82<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4930167.96<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0421\u0442\u0440\u0430\u043d\u043d\u043e, \u043c\u044b \u043d\u0435 \u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0443\u0441\u0442\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443, \u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u043f\u043e\u043b\u044f NULL. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0443 \u041c\u043e\u0441\u043a\u0432\u044b \u0438 \u041a\u0438\u0435\u0432\u0430 \u043f\u043e\u043b\u0435 <b>state_id<\/b> \u043d\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 <b>GROUPING SETS<\/b> \u0441\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u043f\u043e <i>state_id = NULL<\/i>. \u042d\u0442\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0440\u043e\u0441:  <\/p>\n<pre><code class=\"sql\">SELECT sum(amount) FROM payment WHERE city_id IN (1, 9); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<\/tr>\n<tr>\n<td>4930167.96<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0414\u0430, \u043d\u0430\u0448\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0432\u0435\u0440\u043d\u044b\u043c \u0438 \u0441\u0443\u043c\u043c\u044b \u0441\u043e\u0432\u043f\u0430\u043b\u0438.<br \/>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0441 \u0442\u0435\u043c, \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0435\u0442\u0441\u044f \u044d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u043d\u043e \u043a\u0430\u043a \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u0432 \u043a\u0430\u043a\u043e\u0439 \u0438\u0437 \u0441\u0442\u0440\u043e\u043a \u043f\u043e\u043b\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430, \u0430 \u0432 \u043a\u0430\u043a\u043e\u0439 \u2014 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e <i>state_id = NULL<\/i>?  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.city_id,   c.state_id,   c.country_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id, ()); <\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>49932548.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>10045331.82<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>8016888.1<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>10029073.22<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4822644.19<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4760592.82<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4930167.96<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a \u0432\u0435\u0434\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0441\u043a\u0430\u0436\u0435\u0442\u0435 \u0432\u044b, \u0438 \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u044b. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u0431\u00f3\u043b\u044c\u0448\u0435\u0439 \u0441\u0443\u043c\u043c\u043e\u0439 \u0438 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0431\u044b\u043b\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043d\u043e \u0438 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041d\u0443 \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0443\u044e \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   p.city_id,   c.state_id,   c.country_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<\/tr>\n<tr>\n<td>4841.87944<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4850.9681893004115226<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4958.2827659574468085<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4849.1418958333333333<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5096.8224453280318091<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5038.6109236947791165<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5135.6744234404536862<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5219.3821102661596958<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4903.4958541266794626<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5092.9684677419354839<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5006.5867495559502664<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4964.9059877800407332<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4992.1859555555555556<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4694.4786220472440945<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5047.3065217391304348<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4883.1542885375494071<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4945.392548596112311<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4993.25485<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4990.9535879979828543<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4994.7674129930394432<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4941.1371470732907034<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5086.8579314720812183<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5014.53661<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4866.4421695257315843<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4912.8924871001031992<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4940.0480561122244489<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u0443\u043c\u043c\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u0430 \u043a\u0430\u043a\u0430\u044f \u2014 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u0443\u043c\u043c\u0435 \u043f\u043e \u041a\u0438\u0435\u0432\u0443 \u0438 \u041c\u043e\u0441\u043a\u0432\u0435?<br \/>  \u041a \u0441\u0447\u0430\u0441\u0442\u044c\u044e, \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c: \u043d\u043e\u0432\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f <b>grouping()<\/b>, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0435\u0451 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0443\u0437\u043d\u0430\u0442\u044c, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0435. \u0415\u0441\u043b\u0438 <b>grouping(column_name)<\/b> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0, \u0442\u043e column_name \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0435, \u0435\u0441\u043b\u0438 1 \u2014 \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442:  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   p.city_id,   c.state_id,   c.country_id,   grouping(c.state_id) FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<th>grouping<\/th>\n<\/tr>\n<tr>\n<td>4841.87944<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4850.9681893004115226<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4958.2827659574468085<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4849.1418958333333333<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5096.8224453280318091<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5038.6109236947791165<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5135.6744234404536862<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5219.3821102661596958<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4903.4958541266794626<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5092.9684677419354839<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5006.5867495559502664<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4964.9059877800407332<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4992.1859555555555556<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4694.4786220472440945<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5047.3065217391304348<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4883.1542885375494071<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4945.392548596112311<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4993.25485<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4990.9535879979828543<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4994.7674129930394432<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>4941.1371470732907034<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>5086.8579314720812183<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>5014.53661<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>4866.4421695257315843<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>4912.8924871001031992<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>4940.0480561122244489<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>0<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, <b>grouping<\/b> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0431\u0438\u0442\u043e\u0432\u0443\u044e \u043c\u0430\u0441\u043a\u0443 \u0434\u043b\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 \u043d\u0435\u0439:  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   p.city_id,   c.state_id,   c.country_id,   grouping(p.city_id, c.state_id, c.country_id) FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<th>grouping<\/th>\n<\/tr>\n<tr>\n<td>4841.87944<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4850.9681893004115226<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4958.2827659574468085<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4849.1418958333333333<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5096.8224453280318091<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5038.6109236947791165<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5135.6744234404536862<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5219.3821102661596958<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4903.4958541266794626<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5092.9684677419354839<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5006.5867495559502664<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4964.9059877800407332<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4992.1859555555555556<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4694.4786220472440945<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5047.3065217391304348<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4883.1542885375494071<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4945.392548596112311<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4993.25485<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4990.9535879979828543<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4994.7674129930394432<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4941.1371470732907034<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5086.8579314720812183<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5014.53661<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4866.4421695257315843<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4912.8924871001031992<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4940.0480561122244489<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a \u0442\u0438\u043f\u0443 <b>bit(3)<\/b>:  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   p.city_id,   c.state_id,   c.country_id,   grouping(p.city_id, c.state_id, c.country_id) :: BIT(3) FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS(p.city_id, c.state_id, c.country_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<th>country_id<\/th>\n<th>grouping<\/th>\n<\/tr>\n<tr>\n<td>4841.87944<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4850.9681893004115226<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4958.2827659574468085<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4849.1418958333333333<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5096.8224453280318091<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5038.6109236947791165<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5135.6744234404536862<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5219.3821102661596958<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4903.4958541266794626<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5092.9684677419354839<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5006.5867495559502664<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4964.9059877800407332<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4992.1859555555555556<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4694.4786220472440945<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>5047.3065217391304348<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4883.1542885375494071<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4945.392548596112311<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>011<\/td>\n<\/tr>\n<tr>\n<td>4993.25485<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>111<\/td>\n<\/tr>\n<tr>\n<td>4990.9535879979828543<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>110<\/td>\n<\/tr>\n<tr>\n<td>4994.7674129930394432<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>110<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>4941.1371470732907034<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>5086.8579314720812183<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>5014.53661<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>4866.4421695257315843<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>4912.8924871001031992<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<tr>\n<td>4940.0480561122244489<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>101<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u043e\u0431\u044b\u0447\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <b>GROUPING SETS<\/b>:  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   c.country_id,   p.payment_type_id,   p.city_id,   c.state_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY c.country_id, p.payment_type_id, GROUPING SETS(p.city_id, c.state_id, ());<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>country_id<\/th>\n<th>payment_type_id<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<\/tr>\n<tr>\n<td>5024.1955882352941176<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4871.1540119760479042<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4891.0804861111111111<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5130.3479896907216495<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4739.4527586206896552<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4803.7104<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5028.8194375<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4903.6742<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4931.2117088122605364<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4407.8555056179775281<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5068.5559638554216867<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4812.6204093567251462<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4564.1131034482758621<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4963.2932530120481928<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5153.3501219512195122<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5446.8668965517241379<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5057.8818012422360248<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4917.934422641509434<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5146.2380921052631579<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5468.14<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4855.5371929824561404<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5137.8994387755102041<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>4<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4831.1288757396449704<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>5<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5353.0667682926829268<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>6<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5172.241280487804878<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>7<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4989.92<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>8<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5121.7272005988023952<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5224.1245625<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5137.9207142857142857<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5173.0209625668449198<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4735.6070652173913043<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5248.0194285714285714<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4929.1857978723404255<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5086.2014102564102564<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4716.9701273885350318<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4616.2608383233532934<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4756.9175641025641026<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4698.7787272727272727<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5033.8821276595744681<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4947.559810379241517<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5195.4805945945945946<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5213.8818617021276596<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5332.2921935483870968<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4946.331030303030303<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5020.5288888888888889<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5019.8181914893617021<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4875.5393452380952381<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5169.0016551724137931<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4605.4601807228915663<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4930.9780838323353293<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4985.6017441860465116<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5137.4943046357615894<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5035.3225511732401398<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4654.930718954248366<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5048.5046242774566474<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>10<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5171.3846739130434783<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>11<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5042.0059302325581395<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>12<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4997.4288095238095238<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>13<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5071.0994117647058824<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>14<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4941.5018562874251497<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>15<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5110.9062837837837838<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>16<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4853.5610857142857143<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>17<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5451.8535625<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>18<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4958.8998816568047337<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>19<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4702.7937426900584795<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>20<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5001.3644005920078934<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4871.1540119760479042<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4904.9742705167173252<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5028.8194375<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4903.6742<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>5024.1955882352941176<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5068.5559638554216867<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4868.3998074074074074<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5446.8668965517241379<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>5057.8818012422360248<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>4407.8555056179775281<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5468.14<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>5045.2698285714285714<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5172.241280487804878<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4989.92<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>5146.2380921052631579<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5012.7593692022263451<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4998.6716863905325444<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4684.1941176470588235<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4853.1891176470588235<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>5224.1245625<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5163.1096456692913386<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5015.9978440366972477<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4768.7078978978978979<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>5056.6103405572755418<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>5195.4805945945945946<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5089.1325141776937618<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5029.1172686567164179<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>5139.3127164179104478<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4830.0935588235294118<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>4654.930718954248366<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041c\u043e\u0436\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 <b>GROUPING SETS<\/b> \u0432 \u0433\u0440\u0443\u043f\u043f\u044b  <\/p>\n<pre><code class=\"sql\">SELECT   avg(amount),   c.country_id,   p.payment_type_id,   p.city_id,   c.state_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY GROUPING SETS((p.payment_type_id, c.country_id), ( c.state_id, p.city_id));<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>avg<\/th>\n<th>country_id<\/th>\n<th>payment_type_id<\/th>\n<th>city_id<\/th>\n<th>state_id<\/th>\n<\/tr>\n<tr>\n<td>4931.2117088122605364<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4947.559810379241517<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>4917.934422641509434<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5035.3225511732401398<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5121.7272005988023952<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5001.3644005920078934<\/td>\n<td>2<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5141.313996062992126<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>4850.9681893004115226<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>4958.2827659574468085<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>4849.1418958333333333<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5096.8224453280318091<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>5208.2182942430703625<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>4985.5449561403508772<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>5135.6744234404536862<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5219.3821102661596958<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>4903.4958541266794626<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>5092.9684677419354839<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>5006.5867495559502664<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4964.9059877800407332<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4992.1859555555555556<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>4694.4786220472440945<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>5047.3065217391304348<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>4883.1542885375494071<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>4945.392548596112311<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>4841.87944<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>5038.6109236947791165<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a <b>CUBE<\/b>. <b>CUBE<\/b> \u2014 \u044d\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e <b>GROUPING SETS<\/b>.<br \/>  <b>CUBE<\/b> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u043e\u043a, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u0432\u043d\u0443\u0442\u0440\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f <b>CUBE(<i>c1, c2, c3<\/i>)<\/b>(\u0433\u0434\u0435 \u04411, c2, c3 \u2014 \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a) \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f:<br \/>  <i>(\u04411, null, null)<br \/>  (null, c2, null)<br \/>  (null, null, c3)<br \/>  (c1, c2, null)<br \/>  (c1, null, c3)<br \/>  (null, c2, c3)<br \/>  (c1, c2, c3)<br \/>  (null, null, null)<\/i><br \/>  \u041f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.payment_type_id,   c.country_id,   p.city_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY CUBE(p.payment_type_id, c.country_id, p.city_id);<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>payment_type_id<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>854113.25<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>813482.72<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>704315.59<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>995287.51<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>687220.65<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>840649.32<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>804611.11<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>735551.13<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6435231.28<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>835859.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>863170.68<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>967354.92<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>871351.7<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>918403.4<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>926686.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>793447.42<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>740564.31<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>770915.56<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>742079.14<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>775298.49<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>709777.38<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>9914909.86<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16350141.14<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>784598.28<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>841380.29<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>822958.09<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>794155.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>823906.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>845149.42<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>789795.7<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>814318.97<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6516263.11<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>961163.91<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>980209.79<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>826505.29<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>816144.62<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>768140.92<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>943725.82<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>819090.61<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>749505.24<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>764506.39<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>823473.34<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>857523.5<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>775761.64<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>10085751.07<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16602014.18<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>782228.19<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>956924.5<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>830296.86<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>1007028.29<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>816460.78<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>877902.95<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>848247.57<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>723538.4<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6842627.54<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>712204.4<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>873391.3<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>951534.78<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>867225.02<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>839568.04<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>948295.59<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>825230.81<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>756414.13<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>849373.19<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>872296.57<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>838054.08<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>804177.73<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>10137765.64<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16980393.18<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>49932548.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>854113.25<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>784598.28<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>782228.19<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>813482.72<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>841380.29<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>956924.5<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>704315.59<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>822958.09<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>830296.86<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>995287.51<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>794155.68<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>1007028.29<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>687220.65<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>823906.68<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>816460.78<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>840649.32<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>845149.42<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>877902.95<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>804611.11<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>789795.7<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>848247.57<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>735551.13<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>814318.97<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>723538.4<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>835859.93<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>961163.91<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>712204.4<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>863170.68<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>980209.79<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>873391.3<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>967354.92<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>826505.29<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>951534.78<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>871351.7<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>816144.62<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>867225.02<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>918403.4<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>768140.92<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>839568.04<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>926686.93<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>943725.82<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>948295.59<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>793447.42<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>819090.61<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>825230.81<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>740564.31<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>749505.24<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>756414.13<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>770915.56<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>764506.39<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>849373.19<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>742079.14<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>823473.34<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>872296.57<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>775298.49<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>857523.5<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>838054.08<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>709777.38<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>775761.64<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>804177.73<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>19794121.93<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>30138426.57<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u041a\u0430\u043a \u0438 \u0432 <b>GROUPING SETS<\/b> \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0443 \u0432\u043d\u0443\u0442\u0440\u0438:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.payment_type_id,   c.country_id,   p.city_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY CUBE(p.payment_type_id, (c.country_id, p.city_id));<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>payment_type_id<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>854113.25<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>813482.72<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>704315.59<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>995287.51<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>687220.65<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>840649.32<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>804611.11<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>735551.13<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>835859.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>863170.68<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>967354.92<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>871351.7<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>918403.4<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>926686.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>793447.42<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>740564.31<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>770915.56<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>742079.14<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>775298.49<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>709777.38<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>16350141.14<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>784598.28<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>841380.29<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>822958.09<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>794155.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>823906.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>845149.42<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>789795.7<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>814318.97<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>961163.91<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>980209.79<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>826505.29<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>816144.62<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>768140.92<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>943725.82<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>819090.61<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>749505.24<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>764506.39<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>823473.34<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>857523.5<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>775761.64<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>16602014.18<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>782228.19<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>956924.5<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>830296.86<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>1007028.29<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>816460.78<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>877902.95<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>848247.57<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>723538.4<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>712204.4<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>873391.3<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>951534.78<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>867225.02<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>839568.04<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>948295.59<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>825230.81<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>756414.13<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>849373.19<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>872296.57<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>838054.08<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>804177.73<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>16980393.18<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>49932548.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>2420939.72<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>2611787.51<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>2357570.54<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>2796471.48<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>2327588.11<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>2563701.69<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>2442654.38<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>2273408.5<\/td>\n<td>NULL<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>2509228.24<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>2716771.77<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>2745394.99<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>2554721.34<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>2526112.36<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>2818708.34<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>2437768.84<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>2246483.68<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>2384795.14<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>2437849.05<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>2470876.07<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>2289716.75<\/td>\n<td>NULL<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  <b>ROLLUP<\/b> \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 <b>CUBE<\/b> \u2014 \u0447\u0442\u043e-\u0442\u043e \u0432\u0440\u043e\u0434\u0435 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e <b>GROUPING SETS<\/b>, \u0441 \u0442\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0435\u043c, \u0447\u0442\u043e <b>ROLLUP<\/b> \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f, \u0443\u0431\u0438\u0440\u0430\u044f \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0441 \u043a\u043e\u043d\u0446\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, <b>ROLLUP(<i>c1, c2, c3, c4<\/i>)<\/b> \u0432\u0435\u0440\u043d\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f:<br \/>  <i>(c1, c2, c3, c4)<br \/>  (c1, c2, c3, null)<br \/>  (c1, c2, null, null)<br \/>  (c1, null, null, null)<br \/>  (null, null, null, null)<\/i><br \/>  \u041f\u0440\u0438\u043c\u0435\u0440:  <\/p>\n<pre><code class=\"sql\">SELECT   sum(amount),   p.payment_type_id,   c.country_id,   p.city_id FROM payment AS p   INNER JOIN city AS c     ON p.city_id = c.id GROUP BY ROLLUP(p.payment_type_id, c.country_id, p.city_id);<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<table border=\"1\">\n<tr>\n<th>sum<\/th>\n<th>payment_type_id<\/th>\n<th>country_id<\/th>\n<th>city_id<\/th>\n<\/tr>\n<tr>\n<td>854113.25<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>813482.72<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>704315.59<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>995287.51<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>687220.65<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>840649.32<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>804611.11<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>735551.13<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6435231.28<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>835859.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>863170.68<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>967354.92<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>871351.7<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>918403.4<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>926686.93<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>793447.42<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>740564.31<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>770915.56<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>742079.14<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>775298.49<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>709777.38<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>9914909.86<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16350141.14<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>784598.28<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>841380.29<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>822958.09<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>794155.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>823906.68<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>845149.42<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>789795.7<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>814318.97<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6516263.11<\/td>\n<td>2<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>961163.91<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>980209.79<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>826505.29<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>816144.62<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>768140.92<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>943725.82<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>819090.61<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>749505.24<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>764506.39<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>823473.34<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>857523.5<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>775761.64<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>10085751.07<\/td>\n<td>2<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16602014.18<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>782228.19<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>1<\/td>\n<\/tr>\n<tr>\n<td>956924.5<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>830296.86<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>3<\/td>\n<\/tr>\n<tr>\n<td>1007028.29<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>816460.78<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>5<\/td>\n<\/tr>\n<tr>\n<td>877902.95<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>6<\/td>\n<\/tr>\n<tr>\n<td>848247.57<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>7<\/td>\n<\/tr>\n<tr>\n<td>723538.4<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>8<\/td>\n<\/tr>\n<tr>\n<td>6842627.54<\/td>\n<td>3<\/td>\n<td>1<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>712204.4<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>9<\/td>\n<\/tr>\n<tr>\n<td>873391.3<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>10<\/td>\n<\/tr>\n<tr>\n<td>951534.78<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>11<\/td>\n<\/tr>\n<tr>\n<td>867225.02<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>12<\/td>\n<\/tr>\n<tr>\n<td>839568.04<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>13<\/td>\n<\/tr>\n<tr>\n<td>948295.59<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>14<\/td>\n<\/tr>\n<tr>\n<td>825230.81<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>15<\/td>\n<\/tr>\n<tr>\n<td>756414.13<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>16<\/td>\n<\/tr>\n<tr>\n<td>849373.19<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<td>872296.57<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>18<\/td>\n<\/tr>\n<tr>\n<td>838054.08<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>19<\/td>\n<\/tr>\n<tr>\n<td>804177.73<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>20<\/td>\n<\/tr>\n<tr>\n<td>10137765.64<\/td>\n<td>3<\/td>\n<td>2<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>16980393.18<\/td>\n<td>3<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<tr>\n<td>49932548.5<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<td>NULL<\/td>\n<\/tr>\n<\/table>\n<p>  <\/div>\n<\/div>\n<p>  \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0445\u043e\u0447\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043a\u0440\u043e\u043c\u0435 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e (\u0441\u0430\u043c \u043d\u0435 \u043c\u0435\u0440\u044f\u043b \u0435\u0449\u0435) \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043d\u0443\u0436\u0435\u043d \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 <b>UNION ALL<\/b>.<\/p>\n<p>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!               <\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/269849\/\"> http:\/\/habrahabr.ru\/post\/269849\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>       \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432 PostgreSQL 9.5. <br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/264281\/\">\u0427\u0430\u0441\u0442\u044c 1. INSERT\u2026 ON CONFLICT DO NOTHING\/UPDATE \u0438 ROW LEVEL SECURITY<\/a><br \/>  <a href=\"http:\/\/habrahabr.ru\/post\/266759\/\">\u0427\u0430\u0441\u0442\u044c 2. TABLESAMPLE<\/a><br \/>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u042d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u0435\u0449\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0435 SQL-99. \u0415\u0451 \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043a \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435, \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c \u0432 <b>GROUP BY<\/b>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b <b>GROUPING SETS, ROLLUP, CUBE<\/b> \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <b>GROUP BY<\/b>.<br \/>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0431\u043b\u0438\u0436\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.  <\/p>\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-267170","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/267170","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=267170"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/267170\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=267170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=267170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=267170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}