0

モダリティV1、V2、V3、V4およびその他の変数呼び出しを含む変数バージョンのテーブルがあります。1または0にすることができます。必要なのは、各モダリティの行の総数に対する1の頻度を計算することです。バージョンの例:V1の場合、グローバルで1行と13行に等しい呼び出しで6行あり、6/13を示す変数freqを作成する必要があります。今のところ私がしていることは、2つのテーブルを作成することです。最初のテーブルは、それぞれの呼び出しが1に等しい行数です。

version Version Call=1 
             V1      6
             V2      4
             V3      8
             V4      3

各バージョンの合計行数を含む2番目の表

   Version Call total
     V1      13
     V2      14
     V3      15
     V4      23

次に、この2つのテーブルを結合して、頻度を計算します。私はこれを行う他の方法がないかどうか尋ねたかったのですか?

これは私のコードです:

create table Call1 select *, count(*) as call1 from Version where call like '1'group by Version;
create table Calltotal select *, count(*) as calltot from Version group by Version;
update Calltotal change Version Version1 VARCHAR(2);
alter table Call1 add index (Version);
alter table Calltot add index(Version1);
create table final select * from Call1 left join Calltot on Call1.version=Calltot.version1;
alter table final add frequency INT NOT NULL;
update final set frequency=call1/Calltot;
4

1 に答える 1

1

ポインタ...

SELECT thing
     , COUNT(CASE WHEN other_thing = 10 THEN 'foo' END) x 
     , COUNT(*) y  
  FROM my_table 
 GROUP 
    BY thing;
于 2013-01-28T15:52:05.200 に答える