CREATE TABLE users_by_value ( tenant TEXT, user TEXT, bot TEXT, step TEXT, parameter TEXT, value TEXT, PRIMARY KEY( (tenant, bot, step, parameter), value, user) ); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TA','user1','botX','step1','temperature','36'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TA','user2','botX','step1','temperature','33'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TA','user1','botX','step2','temperature','33'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TA','user2','botY','step2','temperature','33'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TA','user3','botX','step1','temperature','33'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TB','user991','botZ','step1','status','completed'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TB','user991','botZ','step1','date','2020-11-23'); INSERT INTO users_by_value (tenant, user, bot, step, parameter, value) VALUES ('TB','user991','botZ','step2','temperature','33C'); SELECT user, value FROM users_by_value WHERE tenant = 'TA' AND bot = 'botX' AND step = 'step1' AND parameter = 'temperature' AND value = '33'; user | value -------+------- user2 | 33 user3 | 33 SELECT user, value FROM users_by_value WHERE tenant = 'TA' AND bot = 'botX' AND step = 'step1' AND parameter = 'temperature' AND value >= '33'; user | value -------+------- user2 | 33 user3 | 33 user1 | 36