0

そのようなクエリをどのように達成するのか疑問に思っていました。たとえば、さまざまな IP アドレスからのリンクのクリックを追跡する次のテーブルがあるとします。

id      link       ip
1       Link 1     100.100.1.1
2       Link 1     100.100.1.2
3       Link 2     100.100.1.3
4       Link 1     100.100.1.1
5       Link 3     100.100.1.4
6       Link 3     100.100.1.1

私がやりたいことは、同じリンクへのすべての一意の IP クリックを取得することです。結果は次のようになります。

id      link       ip
1       Link 1     100.100.1.1
2       Link 1     100.100.1.2
3       Link 2     100.100.1.3
5       Link 3     100.100.1.4
6       Link 3     100.100.1.1

テーブルをグループ化する必要があると考えていますが、そうするとリンク列または IP 列から重複が削除されます。すべてのリンク 1 IP、リンク 2、IP、リンク 3 IP などをグループ化することは可能ですか?

うまくいけば、それはあまり混乱しないように聞こえました。

4

2 に答える 2

1

次を使用してこれを行うことができますgroup by

select min(id) as id, link, ip
from t
group by link, ip;

MySQL では、次の構文も使用できます。

select id, link, ip
from t
group by link, ip;

はリストにありますが、 にはありませidん。許可されていますが、これは一般的には悪い習慣だと思います (この機能が役立つ状況がいくつかあります)。selectgroup by

于 2013-08-02T18:27:49.463 に答える