0
서브 쿼리 또는 MySQL의 다른 메소드를 사용하여이 쿼리를 다시 작성하려면 어떻게해야합니까?subselects 사용 방법
SELECT i.resp_id as id
, Count(1)
FROM int_result i
JOIN response_set rs on i.response_set_id = rs.id
JOIN cx_store_child cbu on rs.cx_business_unit_id = cbu.child_bu_id
AND cbu.business_unit_id = 30850
AND rs.survey_id IN (5550512,5550516,5550521,5550520,5590351,5590384,5679615,5679646,5691634,5699259,5699266,5699270)
AND i.q_id IN (52603091,52251250,52250724,52251333,52919541,52920117,54409178,54409806,54625102,54738933,54739117,54739221)
AND rs.t >= '2017-08-30 00:00:00'
AND rs.t <= '2017-09-30 00:00:00'
GROUP BY rs.cx_business_unit_id, i.a_id;
현재 코드와 현재 달성하고자하는 문제를 지정하십시오. 또한, 왜 당신은 선택에서'COUNT (1)'을 가지고 있는데, 항상 1을 반환 할 것입니까? – ulferts
@ulferts, count (1)는 여러 레코드를 반환하지만 ... 1은 발견 된 레코드의 자리 표시 자입니다. count (*)와 같을 것입니다. – DRapp
가독성이 한 가지이며, 다른 것을 최적화하십시오. 당신은 당신이 얻고 자하는 것을 정확하게 묘사 해 주실 수 있습니까? select 문에없는 필드별로 그룹화하고 레코드 수를 얻습니다. 그러나 당신이 원한 것은 무엇입니까? 또한 날짜 및 명시 시간별 필터링? rs.t 값이 '2017-09-30 11:27:53'이면 어떻게 될까요? <= 2017-09-30 시간 내에 계산되지는 않습니다. 어쩌면 rs.t <2017-10-01과 같이 가야합니까? 9/30에서 11:59:59까지를 포함합니까 ?? – DRapp