2017-02-21 9 views
1

エントリを持ついくつかの列を含むテーブルAがあります。列1にはキャンペーン名が複数回表示されます(表内)。列2に注文日があります。 3列目には、そのキャンペーンの正常に配信されたメールの数が表示されます。col1とcol2のentrieが同一であるテーブルのすべての行を選択します。

今、私が何をしたい:私は列1のエントリがあるすべての列を選択したいと同じと列に列2のエントリは同じである。ここ

(だけそのうちの一つは、十分ではありません)例えば

テーブルAが含まれている場合:

|col1       ||col2   ||col3| 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||15 | 
|20161217_LC_YoBirthdayNo_A_CH ||2016-12-12  ||10 | 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||10 | 
|20161512_NL_SDT_4_DE   ||2017-02-11  ||1 | 
|20170117_SV_YoBirthdayYes_A_DE ||2017-02-03  ||25 | 
|20161512_NL_SDT_4_DE   ||2017-01-29  ||9 |   

は、私は、クエリをしたい選択します:

|col1       ||col2   ||col3| 
+--------------------------------+---------------+------ 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||15 | 
|20161512_NL_Luxus_1_DE   ||2017-01-01  ||10 | 
を例です210

私がこれまでに得たもの、この:

SELECT T1.* FROM TableA T1 JOIN 
(
    SELECT col1 
    FROM TableA 
    GROUP BY col1 
    HAVING COUNT(*) >= 2 AND col2=col2 
) T2 
ON T1.col1 = T2.col1; 

- >しかし、これは...正しく動作していない

答えて

1

はあなたが必要とするのにもGROUP BY日:

SELECT T1.* 
FROM TableA T1 
JOIN (SELECT col1 
     FROM TableA 
     GROUP BY col1, col2 
     HAVING COUNT(*) >= 2) T2 ON T1.col1 = T2.col1; 
+0

作品!どうもありがとう! – AbsoluteBeginner

関連する問題