データ形式に関連する問題があります。専門家がお手伝いいたします。

WBOY
リリース: 2016-06-13 13:33:31
オリジナル
822 人が閲覧しました

データ形式に問題があります。オンラインで待機しています。専門家がお手伝いします。ありがとうございます
表 1:
id groupname 属性 op value
1 abc ダウンロード := 151-250
2 abc アップロード := 50- 150
3 efg Download := 152-250
4 efg Upload := 50-150
上記の表のデータを次の形式に変換する方法
id groupname Download Upload
1 abc 151-250 50-150
2 efg 152-250 50-150
SQL:
SELECT a.groupname,a.value AS Upload,b.value AS Download FROM radgroupreply a LEFT JOIN radgroupreply b ON a .groupname=b.groupname WHERE a.attribute='upload' AND b.attribute='download' AND a.groupname IN ('abc','efg')
このメソッドは実装できますが、ちょっと面倒な気がします非効率的です、もっと良い方法はありますか?
一時テーブルを使用する場合、一時テーブルにデータを挿入する方法は、上記の SQL を直接作成して実行するのでは意味がありませんか?挿入方法はどうするの?
このテーブルのデータは比較的大きいため、効率の問題を考慮して、より良い解決策を見つけたいと思っています。助けてください。いくつかのアイデアを提供していただき、ありがとうございます。
オンラインで待っています、緊急です! ! ! ! !

-----解決策---------
保存プロシージャを使用して一時テーブルを作成する
------解決策------------------
クロス集計を探していると、参照用の既製のストアド プロシージャがあります。 「クロス集計」を検索して

を見つけます
------解決策------------------
列変換...

SQL コード


@id="" を設定します。
select (@id:=@id+1) AS ID、グループ名、
 group_concat(if(attribute='ダウンロード', `value`, '') separator '') AS ダウンロード、
 group_concat(if(attribute='upload', `value`, '') separator '') AS アップロード
 テーブル名グループからグループ名 <div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート