123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- UPDATE products SET unit_id = (SELECT unit_id FROM (SELECT count(t.id), defaults.unit_id, product_id
- FROM transactions t
- JOIN units ON unit_id = units.id
- JOIN unit_types_default defaults USING(unit_type_id)
- GROUP BY defaults.unit_id, product_id) q
- WHERE id = product_id
- ORDER BY count DESC
- LIMIT 1)
- WHERE unit_id IS NULL;
- BEGIN;
- ALTER TABLE products DROP CONSTRAINT fk_category_id ;
- ALTER TABLE products ADD CONSTRAINT fk_category_id FOREIGN KEY (category_id) REFERENCES categories(id) ON UPDATE CASCADE;
- ALTER TABLE categories DROP CONSTRAINT fk_group_id ;
- ALTER TABLE categories ADD CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES groups(id) ON UPDATE CASCADE;
- DO
- $$
- DECLARE
- item record;
- next int;
- BEGIN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SELECT 1 INTO next;
- FOR item IN (SELECT id FROM categories ORDER BY id) LOOP
- UPDATE categories SET id = next WHERE id = item.id;
- SELECT next+1 INTO next;
- END LOOP;
- SELECT 1 INTO next;
- FOR item IN (SELECT id FROM groups ORDER BY id) LOOP
- UPDATE groups SET id = next WHERE id = item.id;
- SELECT next+1 INTO next;
- END LOOP;
- END;
- $$ LANGUAGE plpgsql;
- ALTER TABLE products DROP CONSTRAINT fk_category_id ;
- ALTER TABLE products ADD CONSTRAINT fk_category_id FOREIGN KEY (category_id) REFERENCES categories(id);
- ALTER TABLE categories DROP CONSTRAINT fk_group_id ;
- ALTER TABLE categories ADD CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES groups(id);
- ROLLBACK;
- grocery=> SELECT product_id, count(*) FROM transactions GROUP BY product_id ORDER BY product_id;
- product_id | count
- 2 | 57
- 3 | 23
- 4 | 32
- 5 | 75
- 6 | 5
- 7 | 61
- 8 | 9
- 19 | 2
- 20 | 56
- 21 | 26
- 22 | 45
- 23 | 33
- 30 | 1
- 31 | 31
- 32 | 42
- 33 | 13
- 34 | 45
- 35 | 30
- 141 | 10
- 142 | 3
- 143 | 12
- 144 | 10
- 145 | 6
- 148 | 32
- 149 | 27
- 208 | 1
- 312 | 3
- 313 | 8
- 314 | 2
- 315 | 14
- 317 | 4
- 318 | 12
- 319 | 8
- 320 | 2
- 321 | 6
- 322 | 2
- 489 | 12
- 490 | 8
- 496 | 2
- 497 | 2
- 501 | 31
- 502 | 10
- 533 | 4
- 534 | 1
- 535 | 3
- 536 | 22
- 537 | 22
- 538 | 2
- 539 | 19
- 540 | 1
- 541 | 14
- 542 | 3
- 544 | 9
- 545 | 8
- 546 | 5
- 547 | 12
- 548 | 7
- 549 | 17
- 551 | 2
- 552 | 15
- 553 | 2
- 554 | 2
- 555 | 3
- 556 | 3
- 557 | 6
- 559 | 2
- 563 | 11
- 564 | 1
- 565 | 5
- 566 | 2
- 567 | 5
- 568 | 5
- 569 | 2
- 570 | 1
- 571 | 6
- 572 | 4
- 695 | 4
- 701 | 10
- 704 | 5
- 708 | 2
- 712 | 2
- 715 | 1
- 1338 | 1
- 1339 | 2
- 1340 | 2
- 1341 | 6
- 1342 | 4
- 1362 | 2
- 1363 | 1
- 1364 | 1
- 1374 | 2
- 1922 | 14
- 1923 | 2
- 1924 | 1
- 1925 | 5
- 1926 | 2
- 1927 | 2
- 1928 | 1
- 1929 | 1
- 1930 | 6
- 1931 | 3
- 1944 | 3
- 1945 | 4
- 1946 | 5
- 1947 | 1
- 1948 | 1
- 1951 | 5
- 1965 | 5
- 1966 | 5
- 1991 | 2
- 1992 | 1
- 1993 | 9
- 1994 | 3
- 2005 | 1
- 2006 | 3
- 2118 | 2
- 2119 | 1
- 2120 | 1
- 2128 | 3
- 2129 | 2
- 2132 | 1
- 2149 | 3
- 2150 | 2
- 2151 | 1
- 2152 | 1
- 2155 | 1
- 2197 | 13
- 2198 | 3
- 2199 | 11
- 2200 | 6
- 2203 | 2
- 2206 | 3
- 2215 | 3
- 2216 | 3
- 2217 | 3
- 2226 | 2
- 2262 | 1
- 2263 | 1
- 2264 | 2
- 2267 | 2
- 2347 | 1
- 2377 | 1
- 2378 | 1
- 2379 | 1
- 2380 | 1
- 2381 | 12
- 2399 | 2
- 2400 | 1
- 2401 | 1
- 2404 | 2
- 2407 | 1
- 2411 | 1
- 2425 | 1
- 2426 | 4
- 2427 | 4
- 2436 | 1
- 2437 | 1
- 2448 | 1
- 2449 | 2
- 2450 | 1
- 2688 | 2
- 2711 | 2
- 2712 | 1
- 2713 | 3
- 2714 | 2
- 2715 | 2
- 2718 | 1
- 2722 | 2
- 2726 | 1
- 2731 | 22
- 2734 | 1
- 2737 | 2
- 2741 | 4
- 2746 | 1
- 2747 | 4
- 2750 | 1
- 2760 | 2
- 2765 | 3
- 2766 | 7
- 2769 | 4
- 2776 | 2
- 2777 | 1
- 2781 | 9
- 2784 | 1
- 2792 | 1
- 2793 | 1
- 2794 | 1
- 2842 | 1
- 2843 | 1
- 2861 | 1
- 2970 | 1
- 2971 | 1
- 2972 | 5
- 2976 | 1
- 3189 | 1
- 3190 | 1
- 3197 | 5
- 3198 | 1
- 3201 | 2
- 3204 | 2
- 3208 | 3
- 3220 | 2
- 3261 | 1
- 3262 | 1
- 3263 | 1
- 3264 | 1
- 3265 | 1
- 3266 | 1
- 3267 | 1
- 3279 | 1
- 3280 | 1
- 3286 | 1
- 3292 | 1
- 3307 | 1
- 3308 | 1
- (215 rows)
- grocery=> SELECT store_id, count(*) FROM transactions GROUP BY store_id ORDER BY store_id;
- store_id | count
- 1 | 791
- 2 | 368
- 3 | 3
- 4 | 12
- 5 | 16
- 6 | 57
- 9 | 19
- 10 | 22
- 11 | 9
- 12 | 1
- 13 | 31
- 14 | 1
- 15 | 11
- 16 | 2
- 17 | 1
- 18 | 3
- 19 | 1
- 20 | 18
- 21 | 1
- 22 | 4
- 23 | 3
- 24 | 1
- 25 | 22
- 26 | 1
- 27 | 1
- 28 | 3
- 29 | 3
- 30 | 1
- (28 rows)
|