Столбцы из нескольких таблиц с одинаковыми значениями, возвращающими неверное количество данных при выборе нескольких значений - PullRequest
0 голосов
/ 09 июля 2019
SELECT COUNT(*) FROM (
SELECT
    columnA,
    columnB
FROM
    "table" A JOIN "table" B ON a.ID = b.ID
    WHERE a.column in ('value1','value2')
       AND SUBSTR(b.column,7,6) in ('value1','value2')
)

Здесь, когда я ввожу одно значение, я получаю правильное количество, но когда я ввожу несколько значений, я получаю неправильный счет.Например, ввод только значения 1 дает счетчик 1241 строк, а ввод только значения 2 - счетчик 0. Я ожидаю ввести оба значения и получить суммуРезультаты обоих значений.Но почему-то из-за странной комбинации значений я получаю больше результатов, чем требуется, вместо 1241 строки.

Я пробовал что-то вроде where (a.column,SUBSTR(b.column,7,9)) in ('value1','value2'), но это не сработало!

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Сложно понять, что вы хотите от своего примера, но из того, что я понял, вы могли бы получить что-то вроде столбца «value1» в таблице A и «value2» в таблице B. Я думаю, вам нужно изменить свой код следующим образом :

SELECT COUNT(*) FROM (
SELECT
    columnA,
    columnB
FROM
    "table" A JOIN "table" B 
    ON a.ID = b.ID
      AND SUBSTR(b.column,7,6)=a.column
    WHERE a.column in ('value1','value2')

)
0 голосов
/ 09 июля 2019

Ты пробовал?

SELECT Sum(COUNT(x.columnA) + Count(x.columnb)) FROM (
SELECT
    columnA,
    columnB
FROM
    "table" A JOIN "table" B ON a.ID = b.ID
    WHERE a.column in ('value1','value2')
       AND SUBSTR(b.column,7,6) in ('value1','value2')
)x
...