add batch
remove batch
split batch
comment selection
show hidden batches
hide batch
highlight batch
db<>fiddle
Db2
Firebird
MariaDB
MySQL
Node.js
Oracle
Postgres
SQLite
SQL Server
TimescaleDB
YugabyteDB
Developer-C 11.1
3.0
4.0
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
5.5
5.6
5.7
8.0
18
11g Release 2
18c
21c
23c
8.4
9.3
9.4
9.5
9.6
10
11
12
13
14
15
16
3.8
3.16
3.27
3.39
2012
2014
2016
2017
2017 (Linux)
2019
2019 (Linux)
2022
2.11
2.14
2.6
2.8
2.18
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
Sakila
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
AdventureWorks
no sample DB
no sample DB
AdventureWorks
no sample DB
no sample DB
no sample DB
no sample DB
no sample DB
run
markdown
donate
feedback
about
By using db<>fiddle, you agree to license everything you submit by
Creative Commons CC0
.
create table test (`value` decimal(10,1));
insert into test (`value`) values (1), (5), (10.5), (12), (36);
SELECT Ranges.`range`, COALESCE(AVG(Q.`value`), 0) as `avg` FROM ( SELECT 0 as `class`, ' 0-21' as `range` UNION ALL SELECT 21, '21-34' UNION ALL SELECT 34, '34-64' UNION ALL SELECT 64, '64+' ) Ranges LEFT JOIN ( SELECT `value`, case when `value` between 0 and 21 then 0 when `value` between 21 and 34 then 21 when `value` between 34 and 64 then 34 when `value` > 64 then 64 end as rangeclass FROM test ) Q ON Q.rangeclass = Ranges.`class` GROUP BY Ranges.`range` ORDER BY Ranges.`range`
range
avg
0-21
7.12500
21-34
0.00000
34-64
36.00000
64+
0.00000