どのようにフィルタ列に2回、最大のものが含まれており、そのうちの一つは、何かが含まれていますか?

ジェーンと結婚:

私はこのようなテーブルを持っています。

user - item - ip
user1 - item1 - ip1
user2 - item2 - ip1
user3 - item3 - ip1

user1 - item1 - ip2
user2 - item2 - ip2

私はすべてを一覧表示したいip2任意のユーザーに属し、含まれていますitem2また、これはip22列の最大値に存在する必要があります。それは、そのようなのように2回以上存在する場合ip1、それを選択しないでください。

これどうやってするの?

離れて渡します:

IPとhaving句に条件を設定することによりグループ:

select ip
from tablename
group by ip
having sum(item = 'item2') > 0 and count(*) <= 2 and sum(user = 'user1') > 0;

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=402820&siteId=1