выбрать значения NULL в пределах лимита - PullRequest
3 голосов
/ 24 апреля 2019

Я хочу выбрать значения NULL в пределах лимита 100. Т.е. левое соединение должно сделать выходной предел 100, и в пределах этого я хочу посчитать все значения NULL. Мой subquery, похоже, не работает. Есть идеи, что я делаю не так? Заранее спасибо!

Я пробовал что-то с SUM(), но это тоже не сработает

SELECT SUM(echonest.id IS NULL) FROM (SELECT *
FROM tracks, echonest
left JOIN echonest ON tracks.id = echonest.id 
LIMIT 100)

SELECT *
FROM tracks AS t
LEFT JOIN echonest AS e ON t.id = e.id
LIMIT 100 IN 
(SELECT COUNT(e.id)
FROM e
WHERE e.id IS NULL)

Ожидаемый результат должен учитывать все значения NULL в пределах LIMIT 100.

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Я предполагаю, что это то, что вам нужно

SELECT COUNT(*) AS tot_nuls
FROM 
(
    SELECT E.id AS eid 
    FROM tracks T
    LEFT JOIN echonest E ON T.id = E.id 
    LIMIT 100
) T
WHERE eid IS NULL

Однако, как указано несколько раз в комментариях, вы должны знать, что предложение LIMIT без предложения ORDER BY будет возвращать недетерминированный(иначе случайные) результаты.

1 голос
/ 24 апреля 2019

Вы можете просто выбрать первые 100 строк и посчитать их так: -

select count(*) from (
    SELECT t.id
    FROM tracks AS t
    LEFT JOIN echonest AS e ON t.id = e.id
    where e.id is null
    limit 100
) a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...