Advertisement
coockie27

Untitled

Nov 13th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 3.07 KB | None | 0 0
  1. CREATE TABLE IF NOT EXISTS measuring_types (
  2.     id INT PRIMARY KEY AUTO_INCREMENT,
  3.     title VARCHAR(255) NOT NULL,
  4.     units_measuring_id INT
  5. );
  6.  
  7. CREATE TABLE IF NOT EXISTS units_measuring (
  8.     id INT PRIMARY KEY AUTO_INCREMENT,
  9.     title VARCHAR(255) NOT NULL,
  10.     measuring_type_id INT
  11. );
  12.  
  13. ALTER TABLE measuring_types
  14. ADD FOREIGN KEY (units_measuring_id) REFERENCES units_measuring(id);
  15.  
  16. ALTER TABLE units_measuring
  17. ADD FOREIGN KEY (measuring_type_id) REFERENCES measuring_types(id);
  18.  
  19. CREATE TABLE IF NOT EXISTS station (
  20.     id INT PRIMARY KEY AUTO_INCREMENT,
  21.     station_name VARCHAR(255) NOT NULL,
  22.     address VARCHAR(255) DEFAULT 'Russia'
  23. );
  24.  
  25. CREATE TABLE IF NOT EXISTS measuring (
  26.     id INT PRIMARY KEY AUTO_INCREMENT,
  27.     measuring_type_id INT,
  28.     station_id INT,
  29.     measuring_value Int,
  30.     measuring_datetime Datetime,
  31.  
  32.     FOREIGN KEY (measuring_type_id) REFERENCES measuring_types (id),
  33.     FOREIGN KEY (station_id) REFERENCES station (id)
  34. );
  35.  
  36. INSERT station(station_name)
  37. VALUES
  38.        ('name1'),
  39.        ('name2'),
  40.        ('name3');
  41.  
  42. INSERT measuring_types(title)
  43. VALUES
  44.        ('Градусы'),
  45.        ('type2');
  46. INSERT units_measuring(title)
  47. VALUES
  48.        ('Цельсия'),
  49.        ('unit2');
  50.  
  51. UPDATE measuring_types t
  52. SET units_measuring_id = (SELECT id FROM units_measuring u WHERE u.title = 'Цельсия')
  53. WHERE title = 'Градусы';
  54.  
  55. UPDATE measuring_types t
  56. SET units_measuring_id = (SELECT id FROM units_measuring u WHERE u.title = 'unit2')
  57. WHERE title = 'type2';
  58.  
  59. UPDATE units_measuring u
  60. SET measuring_type_id = (SELECT id FROM measuring_types t WHERE  t.title = 'Градусы')
  61. WHERE title = 'Цельсия';
  62.  
  63. UPDATE units_measuring u
  64. SET measuring_type_id = (SELECT id FROM measuring_types t WHERE  t.title = 'type2')
  65. WHERE title = 'unit2';
  66.  
  67. INSERT measuring(measuring_type_id, station_id, measuring_value, measuring_datetime)
  68. VALUES
  69.        (1, 1, 1, '1989-4-4'),
  70.        (1, 1, 2, '1989-4-4'),
  71.        (2, 1, 1, '1989-4-4'),
  72.        (2, 1, 2, '1989-4-4');
  73.  
  74.  
  75. SELECT DISTINCT measuring_datetime
  76. FROM measuring
  77. ORDER BY measuring_datetime;
  78.  
  79.  
  80. SELECT measuring_value, measuring_datetime
  81. FROM measuring
  82. WHERE measuring_type_id = (SELECT id FROM measuring_types WHERE title = 'Градусы');
  83.  
  84.  
  85. SELECT measuring_type_id, MAX(measuring_value) max_value, MIN(measuring_value) min_value
  86. FROM measuring
  87. GROUP BY measuring_type_id;
  88.  
  89.  
  90. SELECT measuring_datetime
  91. FROM measuring m, measuring_types t
  92. WHERE
  93.       m.measuring_type_id = t.id AND
  94.       m.measuring_value = (
  95.           SELECT MIN(m1.measuring_value)
  96.           FROM measuring m1
  97.           WHERE m.measuring_type_id = t.id
  98.           );
  99.  
  100. SELECT t.title, u.title
  101. FROM measuring_types t
  102. JOIN units_measuring u
  103.     ON t.units_measuring_id = u.measuring_type_id;
  104. SELECT t.title, u.title
  105. FROM measuring_types t, units_measuring u
  106. WHERE t.units_measuring_id = u.measuring_type_id;
  107.  
  108.  
  109. SELECT measuring_type_id, AVG(measuring_value), measuring_datetime, station_id
  110. FROM measuring
  111. WHERE measuring_datetime = '1989-4-4'
  112. GROUP BY measuring_type_id, station_id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement