This commit is contained in:
Alexey Milovidov 2023-07-22 19:53:16 +02:00
parent b73ec36f68
commit afdda489bd
2 changed files with 42 additions and 42 deletions

View File

@ -1,36 +1,36 @@
┌─id─┬─name──┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry │ it │ 104 │
│ 24 │ Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 32 │ Dave │ sales │ 96 │
└────┴───────┴────────────┴────────┘
┌─id─┬─name──┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry │ it │ 104 │
│ 24 │ Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 32 │ Dave │ sales │ 96 │
└────┴───────┴────────────┴────────┘
┌─id─┬─name──┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry │ it │ 104 │
│ 24 │ Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Cindy │ sales │ 96 │
│ 32 │ Dave │ sales │ 96 │
└────┴───────┴────────────┴────────┘
┌─id─┬─name──┬─department─┬─salary─┐
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Cindy │ sales │ 96 │
│ 32 │ Dave │ sales │ 96 │
│ 22 │ Grace │ it │ 90 │
│ 21 │ Emma │ it │ 84 │
└────┴───────┴────────────┴────────┘
┌─id─┬─name──┬─department─┬─salary─┐
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Cindy │ sales │ 96 │
│ 32 │ Dave │ sales │ 96 │
│ 22 │ Grace │ it │ 90 │
│ 21 │ Emma │ it │ 84 │
└────┴───────┴────────────┴────────┘
┌─id─┬─name───────────┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry or Irene │ it │ 104 │
│ 24 │ Henry or Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 32 │ Dave or Cindy │ sales │ 96 │
└────┴────────────────┴────────────┴────────┘
┌─id─┬─name───────────┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry or Irene │ it │ 104 │
│ 24 │ Henry or Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 32 │ Dave or Cindy │ sales │ 96 │
└────┴────────────────┴────────────┴────────┘
┌─id─┬─name───────────┬─department─┬─salary─┐
│ 25 │ Frank │ it │ 120 │
│ 23 │ Henry or Irene │ it │ 104 │
│ 24 │ Henry or Irene │ it │ 104 │
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Dave or Cindy │ sales │ 96 │
│ 32 │ Dave or Cindy │ sales │ 96 │
└────┴────────────────┴────────────┴────────┘
┌─id─┬─name──────────┬─department─┬─salary─┐
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Dave or Cindy │ sales │ 96 │
│ 32 │ Dave or Cindy │ sales │ 96 │
│ 22 │ Grace │ it │ 90 │
│ 21 │ Emma │ it │ 84 │
└────┴───────────────┴────────────┴────────┘
┌─id─┬─name──────────┬─department─┬─salary─┐
│ 33 │ Alice │ sales │ 100 │
│ 31 │ Dave or Cindy │ sales │ 96 │
│ 32 │ Dave or Cindy │ sales │ 96 │
│ 22 │ Grace │ it │ 90 │
│ 21 │ Emma │ it │ 84 │
└────┴───────────────┴────────────┴────────┘

View File

@ -1,33 +1,33 @@
-- https://antonz.org/sql-fetch/
CREATE TEMPORARY TABLE employees (id UInt64, name String, department String, salary UInt64);
INSERT INTO employees VALUES (23, 'Henry', 'it', 104), (24, 'Irene', 'it', 104), (25, 'Frank', 'it', 120), (31, 'Cindy', 'sales', 96), (33, 'Alice', 'sales', 100), (32, 'Dave', 'sales', 96), (22, 'Grace', 'it', 90), (21, 'Emma', 'it', '84');
INSERT INTO employees VALUES (23, 'Henry', 'it', 104), (24, 'Irene', 'it', 104), (25, 'Frank', 'it', 120), (31, 'Cindy', 'sales', 96), (33, 'Alice', 'sales', 100), (32, 'Dave', 'sales', 96), (22, 'Grace', 'it', 90), (21, 'Emma', 'it', 84);
-- Determinism
SET max_threads = 1, parallelize_output_from_storages = 0;
select * from (SELECT * FROM employees ORDER BY id, name, department, salary)
select id, transform(name, ['Henry', 'Irene', 'Dave', 'Cindy'], ['Henry or Irene', 'Henry or Irene', 'Dave or Cindy', 'Dave or Cindy']) AS name, department, salary from (SELECT * FROM employees ORDER BY id, name, department, salary)
order by salary desc
limit 5
format PrettyCompactNoEscapes;
select * from (SELECT * FROM employees ORDER BY id, name, department, salary)
select id, transform(name, ['Henry', 'Irene', 'Dave', 'Cindy'], ['Henry or Irene', 'Henry or Irene', 'Dave or Cindy', 'Dave or Cindy']) AS name, department, salary from (SELECT * FROM employees ORDER BY id, name, department, salary)
order by salary desc
fetch first 5 rows only
format PrettyCompactNoEscapes;
select * from (SELECT * FROM employees ORDER BY id, name, department, salary)
select id, transform(name, ['Henry', 'Irene', 'Dave', 'Cindy'], ['Henry or Irene', 'Henry or Irene', 'Dave or Cindy', 'Dave or Cindy']) AS name, department, salary from (SELECT * FROM employees ORDER BY id, name, department, salary)
order by salary desc
fetch first 5 rows with ties
format PrettyCompactNoEscapes;
select * from (SELECT * FROM employees ORDER BY id, name, department, salary)
select id, transform(name, ['Henry', 'Irene', 'Dave', 'Cindy'], ['Henry or Irene', 'Henry or Irene', 'Dave or Cindy', 'Dave or Cindy']) AS name, department, salary from (SELECT * FROM employees ORDER BY id, name, department, salary)
order by salary desc
offset 3 rows
fetch next 5 rows only
format PrettyCompactNoEscapes;
select * from (SELECT * FROM employees ORDER BY id, name, department, salary)
select id, transform(name, ['Henry', 'Irene', 'Dave', 'Cindy'], ['Henry or Irene', 'Henry or Irene', 'Dave or Cindy', 'Dave or Cindy']) AS name, department, salary from (SELECT * FROM employees ORDER BY id, name, department, salary)
order by salary desc
offset 3 rows
fetch first 5 rows only