thisの重複と見なされる場合がありますが、私の質問はどういうわけかより複雑です。これらのフィールドを持つ MySQL テーブルがあります。
ip | product_id | visits
これは、IP が製品にアクセスした回数を示します。最終的に、次のような php 配列を生成したいと思います。
product_rating_for_ip = array(
ip=>array(
product_id=>rating, product_id=>rating, ...
),
ip=>array(
product_id=>rating, product_id=>rating, ...
),
.
.
.
);
評価は、ある IP からの 1 つの製品の訪問数を、その IP によるすべての製品訪問の MAX で割った値に等しくなります。たとえば、次のようになります。
product_rating_for_ip = array(
"78.125.15.92"=>array(
1=>0.8,2=>0.2,3=>1.0
),
"163.56.75.112"=>array(
1=>0.1,2=>0.3,3=>0.5,8=>0.1,12=>1.0
),
.
.
.
);
私がやった事 :
SELECT ip, id, visits, MAX(visits) FROM visit GROUP BY ip
パフォーマンスに関する考慮事項があり、ネストされたループでの SQL クエリを回避したいと考えています。上記の SQL クエリは、期待される結果を実際に示していないため、正しくないと思います。