グループを使用することなく行数を取得できないのは本当に面倒です。私はちょうど私のサブクエリが返す "合計数"を取得する必要があります。ここでサブクエリから返される行の数とサブクエリによって返される列の数を取得します
は私のサブクエリは、次のようになります。それは、行の「小」の数を返されるように
今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
、私はのはcolumn y
これを呼ぶことにしましょう、私の外側のクエリで1つの余分WHERE
句を追加します。
は、私は、行のみのカウントを取得するために、私は私のサブクエリを繰り返すワンません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の機能ですか?あなたの以前の質問は「ハイブ」のためのものでした。物事にタグを付ける方法がわからない。 – Drew
私は実際に行っていますが、ハイブの質問のほとんどは未回答で、ハイブはSQLだけに似ていますので、SQLでタグ付けしました。しかし、ええ、私はそれを得るには、注釈で少なくともそう言及していたはずです。 @Drew –
あなたのプラットフォームはハープとハイブですか?オラクル、知っている。彼らが未回答の理由は誰もがfoobarものを使用していないcuzです。あなたの以前の質問のように、人々は混乱しました。そして、私はあなたのシステム上で動作しないmysqlクロス結合をあなたに与えようとしていました。あなたはあなたの時間などを浪費しています。タグは正しい方法でタグ付けします。 – Drew