2017-03-16 4 views
-3

私は毎日の注文数を数えるプログラムを書いています。 私のテーブル名は、私は、出力3を持つことができますどのように1つのmysqlと同じ値を数える方法は?

+---------------+----------+ 
| order_list_id | order_id | 
+==========================+ 
| 1    | 1  | 
+---------------+----------+ 
| 2    | 1  | 
+---------------+----------+ 
| 3    | 2  | 
+---------------+----------+ 
| 4    | 2  | 
+---------------+----------+ 
| 5    | 2  | 
+---------------+----------+ 
| 6    | 3  | 
+---------------+----------+ 

ORDER_LISTのですか?

+2

なぜ3ですか?その背後にある論理は何ですか? – Jens

+0

あなたの欲望の結果は何ですか? –

+0

のorder_idには2つのorder_id 1があります。どのように1つに数えることができますか –

答えて

2

私が正しくあなたの要件を理解していれば、あなたは一度だけ、重複をカウントするdistinctキーワードを使用する必要があります。この機能の

select count(distinct order_id) 
from yourTable 

さらにドキュメントがhere

+0

これは正確に話しています。 :)歓声 –

0

max()件を検索してください。

select order_count from (
select order_id , count(*) as order_count 
from order_list 
group by order_id) xxx 
order by order_count desc 
limit 1; 
0

ような何かどうやらあなたはorder_idフィールドに明確な値をカウントしたいと思います。あなたはcount(distinct ...)を使ってこれを実現することができます

select count(distinct order_id) as no_of_orders from order_list 
0

利用可能であることは賢明

select count (distinct order_id) from table name 

日付を追加する必要があり、あなたが日付の日付でグループを追加する必要があるとして、個別の合計数を提供しますワイズ

group by date(here your column name) 
0

期待される出力にDISTINCTを使用する必要があります。

次のクエリを試すことができます。

SELECT 
    COUNT(DISTINCT order_id) AS orderCount 
FROM order_list 

DISTINCT COUNT(*)は、一意のカウントごとに行を返します。 COUNT(DISTINCT式):グループ内の各行の式を評価し、NULLでない一意の値の数を返します。

関連する問題