У меня есть столбец, оценка, это целые числа от 1 до 5 включительно.Я пытаюсь выбрать n (2000 в данном случае) образцов из каждого балла.Мой собственный взлом и другой вопрос SO привели меня к созданию следующего запроса:
select * from (select text, score from data where score= 1 and LENGTH(text) > 45 limit 2000)
union
select * from (select text, score from data where score= 2 and LENGTH(text) > 45 limit 2000)
union
select * from (select text, score from data where score= 3 and LENGTH(text) > 45 limit 2000)
union
select * from (select text, score from data where score= 4 and LENGTH(text) > 45 limit 2000)
union
select * from (select text, score from data where score= 5 and LENGTH(text) > 45 limit 2000)
Это похоже на худший способ сделать это, более того, когда я запускаю каждый запрос отдельно, он дает мне 2kрезультаты, как и ожидалось, но когда я запускаю это объединение, я получаю менее 10 тыс. строк, которые я ищу, чтобы немного оптимизировать этот запрос, но что более важно, я хочу понять, почему объединение возвращает неправильное количество результатов