2017-12-02 13 views
0

表AAAこのテーブルはこのテーブルでは動作しません。クエリチェックの上

k_id main_id  keyword click price click_time 
    1  1   aaa   1  0.25 2017-11-05 
    2  1   bbb   1  0.36 2017-11-05 
    3  1   bbb   1  0.45 2017-11-05 
    4  1   aaa   1  0.36 2017-11-05 
    5  1   ccc   1  0.98 2017-11-05 
    6  1   bbb   1  0.55 2017-11-05 
    7  1   aaa   1  0.25 2017-11-05 
    8  1   ccc   1  0.98 2017-11-05 
    9  1   aaa   1  0.25 2017-11-05 
    10 1   bbb   1  0.45 2017-11-05 

マイクエリ

SELECT p1.keyword as keyword, 
SUM(
SELECT sum(`click`) * price FROM `AAA` p2 where main_id = '1' AND p2.keyword = p1.keyword AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' GROUP BY p2.price ORDER BY NULL 
)          
as new1 
FROM AAA p1 
where p1.main_id = '1' AND DATE(p1.click_time) BETWEEN '2017-11-01' AND '2017-11-30' 
GROUP BY p1.keyword 
ORDER BY NULL LIMIT 0,20 

ので、あなたはあなたのSQL構文でエラーが発生しているこのタイプ

をエラーを取得。 1「main_id = AAA P2からSELECT SUM(click)* CPC 『近くで使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してください』 AND p2.ke」行3

でこのクエリがありますそうではなく、このクエリはまた別の参照を作る..!

最終結果

keyword  sum(click) price 

aaa   4   0.25 0.36 0.25 0.25 (0.36 * 1 + 0.25 * 3 ) 
bbb   4   0.36 0.45 0.55 0.45 (0.36 * 1 + 0.45 * 2 + 0.55 * 1) 
ccc   2   0.98 0.98   (0.98 * 2) 

original & final result getting this types 

keyword price 
aaa  0.86 
bbb  1.81 
ccc  1.96 
+0

あなたは何をしようとしていますか? SUM内のSUM ?? –

+0

はい...合計内で合計しますが、サブクエリはグループバイスcpcであり、その合計はcpc .. –

+0

メインクエリはキーワードのグループであり、すべてのキーワードはサブクエリの合計を取得します –

答えて

1

私は、クエリを変更し、次のように行った:

SELECT keyword,SUM(aa.eachSum) AS totalSum, SUM(aa.totalClicks) AS totalClicks FROM(
SELECT GROUP_CONCAT(DISTINCT p2.keyword) AS keyword,COUNT(p2.click) * price AS eachSum, COUNT(p2.click) AS totalClicks 
FROM `values_test` p2 WHERE main_id = '1' AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' GROUP BY p2.price,p2.keyword 
)aa GROUP BY aa.keyword 

説明

SELECT GROUP_CONCAT(DISTINCT p2.keyword) AS keyword,COUNT(p2.click) * price AS eachSum, COUNT(p2.click) AS totalClicks 
FROM `values_test` p2 
WHERE main_id = '1' 
AND DATE(p2.click_time) BETWEEN '2017-11-01' AND '2017-11-30' 
GROUP BY p2.price,p2.keyword 

この内部サブクエリは異なるキーを収集単語は価格とキーワードに基づいています。なぜなら、単価だけをグループ化すると、同じ価格の別のキーワードが1つの列で収集されてしまうからです。このブロックの結果は次のように外側のクエリの意志のグループに各キーワードをthsiデータを収集した後

keyword eachSum totalClicks 
aaa  0.75  3 
aaa  0.36  1 
bbb  0.36  1 
bbb  0.90  2 
bbb  0.55  1 
ccc  1.96  2 

を、次のように収集し、各値と出力がされる合計:

keyword totalSum totalClicks 
aaa  1.11   4 
bbb  1.81   4 
ccc  1.96   2 

そして、あなたはあなたの中にエラーが発生しています和の例。 ご希望の場合はお知らせください。 (注:私の使用に応じてテーブル名を変更しました)

+0

ありがとう..これは今、正しい結果を得ています..そして、間違ってAAAのキーワード計算をあなたに与えました.. –

+0

あなたはそれが必要な場合、合計クリックについてもクエリを編集しました! –

+0

また、大規模なデータセットと多くの列のこのクエリを作る...あなたの編集したクエリも....たくさんありがとう –

関連する問題