0

我慢してください、私はSQL.愚かです。可能であれば、cron の代わりにビューを使用する必要があることをようやく学びました。これで、ビューの質問内にビューがあります。

私のスタックの友達は、私をここまで導いてくれました:

CREATE VIEW tbl.sums as SELECT 

table2.id, 

SUM( table1.column1 * 2 ) as column1Sum,

SUM( table1.column2 * 2 ) as column2Sum,

SUM( table1.column3 * 2 ) as column3Sum

FROM table1, table2
WHERE table1.table2_id = table2.id GROUP BY table2.id

ビューに 5 番目の列を入れたいと思います。これは、他の 3 列と均等に重み付けされたランクです。

したがって、式は (1/3)*percentile(column1Sum) + (1/3)*percentile(column2Sum) + (1/3)*percentile(column3Sum) のようになります。ここで、"percentile()" はパーセンタイル ランクです。列の残りと列の残りの部分。

明確さの欠如を許してください。これは本当に私の専門ではありません。必要に応じて編集します。

事前にどうもありがとうございました!

パーセンタイルの明瞭さ

私の場合、パーセンタイルは、繰り返し用に調整された特定の列の最高から最低までのパーセンテージ ランクです。したがって、100 個の値を持つ列の場合、最大のものは 100% になり、最小のものは 0% (または 1% でしょうか?) になります。重複が 100 で 50 の場合、下の 2 つは 2% を共有します。

4

1 に答える 1

0
CREATE VIEW tbl.sums as SELECT 
    tmp.*,
    (1/3)*(tmp.column1Sum+tmp.column2Sum+tmp.column3Sum)
FROM (
    SELECT 
        table2.id, 
        SUM( table1.column1 * 2 ) as column1Sum,
        SUM( table1.column2 * 2 ) as column2Sum,
        SUM( table1.column3 * 2 ) as column3Sum
    FROM table1, table2
    WHERE table1.table2_id = table2.id GROUP BY table2.id
) AS tmp

方程式は私にはあまり意味がありません。何か間違っているに違いないと思います。または、パーセンタイルがどうあるべきかを本当に理解していませんでした...サブクエリ。

サブクエリを使用せずにcolumn1Sum直接使用すると、不明な列に関するエラーが発生します。

それ以外の場合は、名前を使用する代わりに、合計の計算に使用される式を書き直すことができます。しかし、これはあなたのユースケースには実用的ではないと思います。

于 2012-10-06T21:28:20.990 に答える