Я пытаюсь рассчитать частоту моих элементов в каждой строке, я объясню: Я выбираю из таблицы, содержащей некоторые элементы, такие как «pos, chr, ref, alt, id_disease» ,Вычислить частоту для каждой строки
Из них я буду извлекать частоту моей реф, альт что:
num_occurrencies_of(ref='A' and alt='C')/total number of rows
.
С помощью этого запроса я получаю едва близко к моей цели, на самом деле идентификатор не рассчитать правильно частоту он всегда возвращает a constant
SELECT pos, chr, upper(ref||' '||alt) AS refalt, id_disease AS lvl15, t1.tot_var, t1.freq
FROM varianti
JOIN (SELECT count(*) AS tot_var,(count(*)::numeric/sum(count(*)) over()) as freq
FROM varianti)t1 ON TRUE
WHERE length(ref)=1 AND length(alt)=1 AND chr similar to 'chr[\d X Y]*'
Все, что я хочу, чтобы получить данные, как это:
chr pos refalt lvl15 freq tot_var
1 120 AT 15 0.3 1000
1 150 CG 30 0.01 1000
tot_var = подсчитывает общее количество моих строк, в которых я нуждаюсь (не может быть 1, я подсчитываю каждую строку!)
Оба ref и alt могут иметь эти значения (A, T, C, G) в каждой возможной перестановке, AA, AT, TA, TC, CT и т. Д.
Что мне не хватает в моем коде?
Скажите мне, если вы хотите дальнейшие Infos
Пример из varianti:
chr pos ref alt id_disease
chr1 152 A C 15
chr3 487 T T 74
здесь выход моего запроса:
pos chr refalt lvl15 tot_var freq
124338543 chr11 G A 69 1 0.000000677833751782702767
124338595 chr11 C T 28 1 0.000000677833751782702767
124361862 chr11 C . 53 1 0.000000677833751782702767
124361899 chr11 T A 20 1 0.000000677833751782702767
Можете ли вы привести несколько строк таблицы 'varianti'? thks – maximilienAndile
Здесь вы идете, обновите пример. – xCloudx8