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 events ( id int auto_increment primary key, name varchar(100) null ); create table users ( name varchar(100) null, id int auto_increment primary key ); create table availability ( answer text null, event_id int null, user_id int not null, constraint availability_events_id_fk foreign key (event_id) references events (id), constraint availability_users_id_fk foreign key (user_id) references users (id) ); INSERT INTO events (id, name) VALUES (1, 'Event 1'); INSERT INTO events (id, name) VALUES (2, 'Event 2'); INSERT INTO users (name, id) VALUES ('John', 1); INSERT INTO users (name, id) VALUES ('Francis', 2); INSERT INTO users (name, id) VALUES ('Peter', 3); INSERT INTO users (name, id) VALUES ('Mike', 4); INSERT INTO availability (answer, event_id, user_id) VALUES ('yes', 1, 1); INSERT INTO availability (answer, event_id, user_id) VALUES ('yes', 2, 1); INSERT INTO availability (answer, event_id, user_id) VALUES ('no', 1, 2); INSERT INTO availability (answer, event_id, user_id) VALUES ('maybe', 2, 4);
select u.id user_id, sum(case when a.event_id is null then 1 else 0 end) cnt from users u cross join events e left join availability a on a.event_id = e.id and a.user_id = u.id group by u.id order by u.id
user_id
cnt
1
0
2
1
3
2
4
1