을 반환합니다. 그룹별로 사용할 필요없이 행 수를 얻지 못하는 것이 정말 귀찮습니다. 내 하위 쿼리가 반환 한 "총 개수"를 가져와야합니다.하위 쿼리에서 반환 된 열 수와 함께 하위 쿼리
select sales_flat_order.increment_id, sales_flat_order.created_at, sales_flat_order.status, dispatch.dispatch_date,
DATEDIFF(TO_DATE(dispatch.dispatch_date), TO_DATE(sales_flat_order.created_at)) as delay
FROM
magentodb.sales_flat_order
LEFT OUTER JOIN erpdb.dispatch
ON
sales_flat_order.increment_id == dispatch.order_num
where
TO_DATE(created_at) >= DATE_SUB(current_date(),6)
AND
TO_DATE(created_at) <= DATE_SUB(current_date(), 3)
AND
sales_flat_order.status NOT IN ('canceled', 'exchange', 'rto', 'pending_auth', 'pending_payment' ,'partial_refund','refund', 'refund_cash', 'partial_refund_cash', 'holded')
)
AS TempFiltered
지금, 내 외부 쿼리에 1 개의 여분 WHERE
절을 추가은 행의 "작은"수를 반환되도록의이 column y
을 부르 자 : 여기
처럼 내 하위 쿼리는 모습입니다.
내가 만 행의 수를 얻기 위해 내 하위 쿼리를 반복 완하지 않는 X와 Y의 비율 (하위 쿼리에 외부 쿼리에 의해 반환 된 행의 즉 수)
를 취할 필요합니다. 내가받을 수 있니?
이것은 내가 지금까지 가지고있는 것입니다. 그러나 당연히 잘못된 것입니다. 선택 열을 제외하거나 그룹별로 사용하지 않고도 모든 행을 셀 수는 없습니다. 내가 해결할 수 있니?
SELECT tempfiltered.delay, count(*) as countOfOrders,(100*count(*))/tempfiltered.Total) over() as percentage
FROM
(
select count(*) as Total, sales_flat_order.increment_id, sales_flat_order.created_at, sales_flat_order.status, dispatch.dispatch_date,
DATEDIFF(TO_DATE(dispatch.dispatch_date), TO_DATE(sales_flat_order.created_at)) as delay
FROM
magentodb.sales_flat_order
LEFT OUTER JOIN erpdb.dispatch
ON
sales_flat_order.increment_id == dispatch.order_num
where
TO_DATE(created_at) >= DATE_SUB(current_date(),6)
AND
TO_DATE(created_at) <= DATE_SUB(current_date(), 3)
AND
sales_flat_order.status NOT IN ('canceled', 'exchange', 'rto', 'pending_auth', 'pending_payment' ,'partial_refund','refund', 'refund_cash', 'partial_refund_cash', 'holded')
)
AS TempFiltered
Where
DATEDIFF(TO_DATE(TempFiltered.dispatch_date), TO_DATE(TempFiltered.created_at)) > 1
GROUP BY tempfiltered.delay
ORDER BY tempfiltered.delay
이 TO_DATE는 oracle 함수입니다. 이전 질문은 '하이브 (hive)'에 대한 질문이었습니다. 나는 당신이 사물에 태그하는 방법을 알지 못합니다. – Drew
사실 나는 하이브 질문의 대부분이 답이없고 하이브가 SQL과 더 비슷하기 때문에 SQL에서 태그를 붙였습니다. 하지만 그래, 알았어. 메모에 적어도 언급 했어야 했어. @Drew –
당신의 플랫폼은 하프 앤 하이브입니까? 오라클. 그들이 대답하지 않은 이유는 아무도 foobar 것을 사용하지 않는 사촌입니다. 그리고 이전의 질문처럼 사람들은 혼란 스러웠습니다. 그리고 저는 여러분의 시스템에서 작동하지 않는 mysql 크로스 조인을하려고했습니다. 당신은 당신의 시간과 다른 사람들을 낭비하고 있습니다. 태그는 올바른 방법으로 처리합니다. – Drew