Max_Leb

Untitled

Dec 26th, 2022
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.34 KB | None | 0 0
  1. SELECT Categories.name, Products.name, Products.in_stock, SUM(Products.price * Products.in_stock)
  2. OVER(PARTITION BY Categories.name ORDER BY Products.name) AS Total_price FROM Products
  3. JOIN Categories ON Categories.id = Products.category_id;
  4.  
  5. SELECT Products.name, Products.in_stock, AVG(Products.price)
  6. OVER(ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS Average_price FROM Products;
  7.  
  8. WITH Items(name, price, manufacturer, provider) AS
  9.         (SELECT Products.name, Products.price, Producers.name, Providers.name FROM Products
  10.         JOIN Producers, Providers ON Producers.id = Products.producer_id AND Providers.id = Products.provider_id
  11.    ) SELECT name, manufacturer, provider, price FROM Items WHERE price > 200;
  12.  
  13. INSERT INTO Providers(name, contract_amount) VALUES
  14. ('BestЗавод', 100000);
  15.  
  16. INSERT INTO Products(name, provider_id, producer_id, category_id, price, weight_volume, in_stock) VALUES
  17. ('Кефир', 6, 1, 4, 125, 1, 77);
  18.  
  19.  
  20. WITH Providers_and_Producers(manufacturer_name, product_name, product_count, product_price) AS
  21.   (
  22.     SELECT Providers.name, Products.name, Products.price, Products.in_stock FROM Products
  23.     JOIN Providers ON Providers.id = Products.provider_id
  24.     INTERSECT
  25.     SELECT Producers.name, Products.name, Products.price, Products.in_stock FROM Products
  26.     JOIN Producers ON Producers.id = Products.producer_id
  27.   )
  28. SELECT * FROM Providers_and_Producers;
  29.  
  30. CREATE TABLE IF NOT EXISTS Companies(
  31.     id INTEGER PRIMARY KEY AUTOINCREMENT,
  32.     subdivision_name TEXT NOT NULL,
  33.     parent_id INTEGER
  34. );
  35. INSERT INTO Companies(subdivision_name, parent_id) VALUES
  36. ('Department_IT', NULL),
  37. ('IT_managment', 1),
  38. ('Development_and_control_department', 1),
  39. ('Information_systems_department', 1),
  40. ('Server_hardware_department', 2),
  41. ('User_support_department', 2),
  42. ('Communications_department', 2),
  43. ('Quality_control_department', 3),
  44. ('Project_office', 3);
  45.  
  46. WITH RECURSIVE IT_hierarchy AS (
  47.   SELECT Companies.id, Companies.parent_id, Companies.subdivision_name, 2 AS level
  48.   FROM Companies WHERE Companies.subdivision_name = 'IT_managment'
  49.   UNION ALL
  50.   SELECT Companies.id, Companies.parent_id, Companies.subdivision_name, IT_hierarchy.level + 1 AS level FROM IT_hierarchy, Companies
  51.   WHERE Companies.parent_id = IT_hierarchy.id
  52.   )
  53. SELECT subdivision_name FROM IT_hierarchy WHERE subdivision_name != 'IT_managment';
Advertisement
Add Comment
Please, Sign In to add comment