ВОПРОСЫ с запросом UNION, где из одной таблицы мне нужен COUNT записей для «Term», где я указываю поля «ID» и «Count».Не получить запрос SQL для UNION, чтобы вернуть правильное значение
ПРИМЕЧАНИЕ Грейдер сортируется, если он подозревает, что используется UNION ALL.
Я пробую несколько разных форматов ... и никто не работает правильно.
------ (версия 1) -------
например,
select count(term) from frequency where (select docid =
'10398_txt_earn' where count = '1' UNION select docid =
'925_txt_trade' where count = '1');
Дает мне "0." Грейдер говорит мне, что «0» неверно.
Если я разделился на две части, я получаю значение для каждого (110 и 225).
------ (версия 2) -------
Я изменил запрос, используя формат здесь:
http://sqlite.1065341.n5.nabble.com/UNION-QUERY-td42629.html
, так что теперь у меня есть для запрос (кстати ... в отличие от того, что предлагает плакат, я должен использовать UNION ... если я не могу использовать UNION ALL, затем выберите уникальные записи ... но это кажется ненужным вычислительном шаг)
select count(term) from (select * from frequency where
(docid='10398_txt_earn' and count='1'))
UNION
select term from (select * from frequency where
(docid='925_txt_trade' and count='1'));
дает мне две линии вывода: строка 1: 110, строка 2: 225
Если я заменил «select count (term)» на «select term» ... Я получаю список, длина которого равна сумме эти два значения выше
------ (версия 3) -------
select (term) from frequency where (select docid = '10398_txt_earn'
where count = '1')
UNION
select (term) from frequency where (select docid = '925_txt_trade'
where count = '1');
снова дает мне две строки вывода: Строка 1: 110, строка 2: 225
ВОПРОС ??? Как бы вы изменили его, чтобы получить одно значение с подсчетом уникальных общих условий?
отсчет зарезервированное слово .. Я удивлен, что вы можете использовать его в пункте где не избежать его в '[]'. Кроме того, все ли «ТЕРМИНЫ» имеют ненулевое значение? Если ваши подсчеты не совпадают, потому что счетчик не будет считать нулевые поля. Если вы используете 'count (*)' однако, он будет считать все строки независимо от нулевых значений.Наконец, второй запрос кажется, что он должен вернуть то, что вы считаете после того, как count является текстовым полем, docID - текстовыми полями, а термин никогда не является нулевым. – xQbert
«count» выполняет две роли. первый экземпляр, как в «count (term)» является частью запроса ... второй экземпляр, как в «count = '1», является тем, что одно из полей в базе данных называется «count» – MJMV
Оберните '[count] = '1'' в скобках RDBMS может запутаться в функции count vs count. 2-е значение tablename.term имеет нулевые значения? если подсчет нулей не работает. – xQbert