Чтение из базы данных путем расчета процента совпадения строк - PullRequest
0 голосов
/ 27 сентября 2019

'выберите X из Y, где X, как% алгоритма ускорения последовательности%'

, мы хотим прочитать это, например, "мой алгоритм ускорения последовательности".Как мы можем сделать это в случае чтения из базы данных путем расчета процента совпадения строк?

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Вы можете использовать условное агрегирование:

SELECT
    SUM(CASE WHEN X like '%sequence acceleration algorithem%' THEN 1 ELSE 0 END)
        / COUNT(*) AS ratio
FROM Y

Это даст вам соотношение записей, столбец которых X содержит строку поиска.

Примечание: если ваша таблица пуста,этот запрос выдаст ошибку, поскольку знаменатель будет 0.Используйте NULLIF() (или подобное в вашей СУБД), чтобы избежать ошибки:

SELECT
    SUM(CASE WHEN X like '%sequence acceleration algorithem%' THEN 1 ELSE 0 END)
        / NULLIF(COUNT(*), 0) AS ratio
FROM Y
0 голосов
/ 27 сентября 2019

Я не думаю, что в SQL есть такая особенность.Но Вы можете сделать это, написав свою логику.Во-первых, получить результат как% searchString%.Этот результат будет список.Теперь повторите этот список и удалите (или добавьте выбранные элементы в новый список) после проверки каждого элемента по вашей логике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...