মাইএসকিউএল COUNT ডিসটিন্ট


144

আমি গতকাল আমার সিপিতে স্বতন্ত্র দর্শনগুলির সংখ্যা সংগ্রহ করার চেষ্টা করছি, তারপরে সেগুলি গণনা করুন।

SELECT
    DISTINCT `user_id` as user,
    `site_id` as site,
    `ts` as time
FROM
    `cp_visits`
WHERE
    ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)

কোনও কারণে এটি একই সাইট আইডির সাথে একাধিক ফলাফল টানছে .... আমি কীভাবে কেবল পৃথক সাইট_আইডি সিপি লগইনগুলি টান এবং গণনা করব?

উত্তর:


299
 Select
     Count(Distinct user_id) As countUsers
   , Count(site_id) As countVisits
   , site_id As site
 From cp_visits
 Where ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)
 Group By site_id

17
আমি এসকিউএলকে ভালবাসি কারণ আপনি "আমি কীভাবে পৃথক ব্যবহারকারীর আইডি গণনা করব" এর মতো প্রশ্ন পেয়েছি এবং উত্তরটি কেবল " Count(Distinct user_id)"
টিম

23

সার্বিক

SELECT
       COUNT(DISTINCT `site_id`) as distinct_sites
  FROM `cp_visits`
 WHERE ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)

বা সাইট প্রতি

  SELECT
         `site_id` as site,
         COUNT(DISTINCT `user_id`) as distinct_users_per_site
    FROM `cp_visits`
   WHERE ts >= DATE_SUB(NOW(), INTERVAL 1 DAY)
GROUP BY `site_id`

ফলটিতে timeকলামটি থাকা কোনও অর্থহীন নয় - যেহেতু আপনি সারিগুলিকে একত্রিত করছেন, একটি নির্দিষ্ট timeদেখা অপ্রাসঙ্গিক, যদি না এটি হয় minবা maxআপনি না হন।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.