1

既存のテーブルから新しいテーブルを作成したい。

これは既存のテーブルです

A       B               C     
title   view_count  date   

aaa      24      5/18/13    
bbb      10      5/18/13    
ccc      10      5/18/13    
aaa      10      5/19/13    
aaa      20      5/20/13    
bbb      10      5/20/13    
ccc      20      5/20/13    
ccc      20      5/21/13    
aaa       5      5/22/13    
bbb       3      5/22/13    
ccc       1      5/22/13    

次のように新しいテーブルを作成しようとします。

title  date1(5/18/13)    date2(5/19/13)    date3(5/20/13)

aaa      24 (view_count)      10                20

MySQLでこれを作成するにはどうすればよいですか?

======================= 質問を追加します。あなたが助けてくれたこれらのクエリを試してみたところ、必要な結果が得られました。それらを新しいテーブルとして作成できますか? これらの結果として、新しいテーブルを作成したいと思います。

4

3 に答える 3

0

これは次のように行うことができます。

select title,
       sum(case `date` when '2013/05/18' then view_count else 0 end) `date1(5/18/13)`,
       sum(case `date` when '2013/05/19' then view_count else 0 end) `date2(5/19/13)`,
       sum(case `date` when '2013/05/20' then view_count else 0 end) `date3(5/20/13)`
from myTable
group by title

- すべてのタイトルの値を返す; タイトル aaa の結果のみを表示する場合は、に置き換えgroup by titleますwhere title='aaa'

于 2013-05-23T14:01:15.933 に答える
0

これを試してQuery

select 
    distinct
    t.title,
    t1.view_count as `date1(5/18/13)`,
    t2.view_count as `date2(5/19/13)`,
    t3.view_count as `date2(5/20/13)`
from table_name t
left join table_name t1 on t.title=t1.title and t1.date='2013/5/18'
left join table_name t2 on t.title=t2.title and t2.date='2013/5/19'
left join table_name t3 on t.title=t3.title and t3.date='2013/5/20'
where t.title='aaa'

SQL フィドル

于 2013-05-23T14:18:27.477 に答える
0

EDIT ... OPは、私が答えている間に質問を変更しました。

SUMIFS()助けられる!

私は一日中データを検索して返すので、これをよく使用します。範囲からの 1 つ以上の特定の基準が true である範囲から値を返すことができます。あなたのように構造化されたデータでうまく機能します。

行 1 のヘッダーが行 2 のデータと同じで、Today日付が F1 にある場合、列 D2 に入力して下にドラッグできる数式は次のようになります...

=(SUMIFS(B:B,A:A,A2,C:C,$F$1-1)-SUMIFS(B:B,A:A,A2,C:C,$F$1-2))/(SUMIFS(B:B,A:A,A2,C:C,$F$1-1))

セル F1 の値を Excel 関数で変更しToday()たり、Today を数式に入れたりすることができます。

これが役立つことを願っています。

-Schebealls

ここに画像の説明を入力

于 2013-05-23T13:50:48.550 に答える