Как рассчитать процент с помощью оператора SQL? [закрыто]


1

у меня есть две таблицы sql. Я хочу сравнить две таблицы. Сравнение двух таблиц уже сделано. Теперь я хочу узнать, сколько записей совпадает, а не совпадает в процентах. Можно ли написать запрос в sql, чтобы получить процент?  а вот мои столы

  src_table

----------------------------------------------------------------
src_table
----------------------------------------------------------------
1
2
3
a
b
c
a@
b@
c@
-----------------------------------------------------------------

и tgt_table это

-----------------------------------------------------------------
tgt_data
-----------------------------------------------------------------
1
4
5
a
e
f
a@
e@
f@
--------------------------------------------------------------------

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

Ответы:


0

Я полагаю, вы хотите рассчитать процент по таблице tgt_data, Если это не так, просто поменяйте имена таблиц ниже.

Запрос зависит от возможностей вашего продукта SQL. Если он не может обрабатывать сложные выражения с подзапросами, вам понадобится разбить выражение на несколько операторов.

Выражение, которое вы хотите вычислить:

(select count(*) * 100 from tgt_data t where exists
  (select * from src_table where src_col = t.tgt_col))
/
(select count(*) from tgt_data)

Если вам нужно сформулировать его как один оператор SELECT, это альтернативная формулировка:

select  
(select count(*) * 100 from tgt_data t where exists
  (select * from src_table where src_col = t.tgt_col))
/ count(*)
from tgt_data

Если ваш продукт рассчитывает это в целочисленной арифметике, и вы хотели бы результат в десятичном виде, затем заменить 100 от 100.0 выше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.