2016-06-15 3 views
0
+-------------+---------------+ 
| order_no | product_id | 
|  55  |  765  | 
|  55  |  564  | 
|  34  |  323  | 
|  42  |  223  | 
+-------------+---------------+ 

「765」をproduct_idとして使用した後、order_noの合計数を取得するために使用できるクエリを知りたいと思います。別の列の値を使用して列の値の数を数える

私が言うことは、order_no "55"には2つのプロダクトがあるため、出力を2にしたいということです。だから、もし私が "2"を取得するクエリで "765"を入力します。

+1

order_no = 55に記載されている2つの製品が異なる製品IDを持つため、結果として2を得ることは不可能です。私の推測では、特定の製品IDの注文数を表示したいのですか? – jaolstad

+0

@jaolstad:考えられるのは 'product_id'を使って' order_no'を特定し、 'order_no'に関連付けられた' product_id'の数を数えますが、非常に高い信頼度ではないと考えます。 –

答えて

0

http://sqlfiddle.com/#!9/eff29/4

SELECT 
t.product_id, 
t.order_no, 
COUNT(tj.product_id) 
FROM t1 t 
LEFT JOIN t1 tj 
ON t.order_no = tj.order_no 
WHERE t.product_id=765 
GROUP BY t.product_id, t.order_no 
0

これを試してみてください。 products_idを指定することができます:

SELECT COUNT(*), order_no FROM youTable 
WHERE order_no IN (
    SELECT order_no FROM yourTable WHERE product_id = 765 
) 
GROUP BY order_no; 
関連する問題