date는 날짜를 나타내고 user_id는 사용자의 ID를 나타내며 count_name은 특정 통계값을 나타냅니다.
원하는 데이터를 한번에 불러올 수 있는 방법이 있나요? (상대적으로 데이터량이 많은 오래된 데이터베이스입니다. 데이터베이스 수정은 최종 고려사항입니다!)
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>시도한 방법:
페이징 통계의 경우 테이블에 기본 키가 없으므로 페이징 처리가 어렵습니다.
답글 내용:
이런 식으로 데이터베이스를 12번 가져오면 결과를 얻을 수 있지만 효율성은 높지 않습니다.
시도한 방법:
<code>select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a1','b1'); select count(distinct(`shop_id`)) from count_table where date = '20160808' and count_name in ('a2','b2'); ···</code>
데이터는 한 번에 가져오고 처리됩니다. MySQL은 한 번에 약 10,000개의 데이터만 가져올 수 있다는 제한으로 인해 더 이상 데이터가 붕괴될 수 있습니다.