2
私は検索テーブルを記録しました。列はIP、query、timestampです。私が望むのは、データを「クエリ」でグループ化し、その「クエリ」のIPアドレスの一意のインスタンスの数を数えることです。ここでは、そのテーブルのサンプルです:mysqlは別の列とグループ結果によって異なる行を数えます
TABLE: SEARCHES
IP | query | timestamp
1.2.3.4 oranges 1485215625
1.2.3.5 bananas 1485215643
1.2.3.4 oranges 1485215655
1.2.3.6 apples 1485215662
1.2.3.7 oranges 1485215711
1.2.3.7 pears 1485215730
私は、次のmysqlのクエリを使用しています:
SELECT query, COUNT(query) as num FROM searches WHERE timestamp > ".$sometimestamp." GROUP BY query
私の目標は、次のようなデータを取得するために、次のようになります。
oranges [2]
bananas [1]
apples [1]
pears [1]
私のクエリが近くにありますしかし、それは生産するでしょう:
oranges [3] <-- IP address 1.2.3.4 searched for this twice, counting 3 total
bananas [1]
apples [1]
pears [1]
IPアドレスごとに一度だけユニークな検索クエリをカウントする方法が必要です(ただし、同じIPアドレスから複数のユニークなクエリは無視されません)。
を、私はそれを試してみましたが、それは私が2 – pghalcrow
あなたは '明確なIP'べき@pghalcrow期待する「みかん」のための唯一の1インスタンスが作成されます。 – Blank
おっと、私はDISTINCTクエリを使用していました。私はこれがあまりにも簡単だったことを知っていた(壁に頭を向けて)。 – pghalcrow