これがクエリです
select count(*),
ss.pname,
ttu.user_id,
ttl.location_name ,
group_concat(em.customer_id),
count(em.customer_id)
from seseal as ss,
track_and_trace_user as ttu,
track_and_trace_location as ttl,
eseal_mapping as em
where ss.real_id=em.e_id
and em.user_id=ttu.user_id
and ttu.location_id=ttl.location_id
group by ss.pname, ttu.user_id, ttl.location_name
having count(em.customer_id)>1 ;
結果は次のとおりです。
+----------+----------------+---------+---------------+------------------------------+-----------------------+
| count(*) | pname | user_id | location_name | group_concat(em.customer_id) | count(em.customer_id) |
+----------+----------------+---------+---------------+------------------------------+-----------------------+
| 6 | Nokia N91 | 1 | Malad | 60,51,60,51,58,58 | 6 |
| 2 | SUPERIA 1000gm | 4 | Raichur | 51,46 | 2 |
| 5 | SUPERIA 1000gm | 5 | west bengal | 51,46,51,51,46 | 5 |
| 2 | SUPERIA 500gm | 4 | Raichur | 59,59 | 2 |
| 3 | SUPERIA 500gm | 5 | west bengal | 59,46,59 | 3 |
+----------+----------------+---------+---------------+------------------------------+-----------------------+
問題は、結果セットでわかるように、一部の行の最後の 2 番目の列customer_ids
が重複しており、一部の行が一意であることです。そして最後の列はその数を示しています。
ここで、3 行目を選択します。51 と 46 という 2 つの顧客 ID があり、これらはその行で重複しているため、この行の最後の列には 2 が含まれている必要があります。
同様に、最後の行の場合、最後の列には 1 が含まれている必要があります。重複しているのは1 つだけですcustomer id
。つまり 59です。
したがって、正確な問題を理解している場合、2 行目は重複する顧客 ID が含まれていないため、この結果セットの一部ではありません。