2017-05-17 7 views
1

で重複した結果を数える私は、クエリにPythonのSQLAlchemyのクエリ

allcategory = db.session.query(func.count(marketItem.subcategory).label("help"),Subcategories.subname1) 
allcategory = allcategory.join(Subcategories) 
allcategory = allcategory.filter(marketItem.subcategory == Subcategories.id) 
allcategory = allcategory.filter(marketItem.vendor_id==vendorprofile.id) 
allcategory = allcategory.group_by(marketItem.id) 
for allcat in allcategory.all(): 
    print(allcat) 

のthatsを持っているが、私は彼らが

(2, 'Consoles') 
(3, 'Paintings') 

それもできればようにしたいと思い

(1, 'Consoles') 
(1, 'Consoles') 
(1, 'Paintings') 
(1, 'Paintings') 
(1, 'Paintings') 

として結果を出力し通常のSQLの言葉で説明すると、それも同様に役立ちます。

答えて

2

あなたはSubcategory.subname1によってグループ化する必要があります。SQLで

allcategory = db.session.query(func.count(marketItem.subcategory).label("help"), 
           Subcategories.subname1) 
allcategory = allcategory.join(Subcategories) 
allcategory = allcategory.filter(marketItem.subcategory==Subcategories.id) 
allcategory = allcategory.filter(marketItem.vendor_id==vendorprofile.id) 
allcategory = allcategory.group_by(Sucategories.subname1) # < change here 
for allcat in allcategory.all(): 
    print(allcat) 

あなたがしなければならないグループに集約されていないフィールドによって - この場合Subcategories.subname1に。

+0

Worked ty!私は近づいていたが、上を見上げていた。 – Anekdotin

+0

大歓迎です。 – bernie