স্কেলচেমিতে গ্রুপ অনুসারে গণনা করুন function


111

আমি স্ক্যালচেমিতে "গ্রুপ বাই অ্যান্ড কাউন্ট" কমান্ড চাই। কিভাবে আমি এটি করতে পারব?


4
সদৃশ মনে করা হয় stackoverflow.com/questions/370174/...
Arnkrishn

4
ধন্যবাদ, আপনাকে অনেক অনেক ধন্যবাদ
নাজমুল হাসান

উত্তর:


172

কাউন্টিং উপর ডকুমেন্টেশন বলছেন যে জন্য group_byপ্রশ্নের এটা ব্যবহার করা উত্তম func.count():

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()

16
এবং Table.queryপরিবর্তে সম্পত্তি ব্যবহারকারীদের জন্য এখানে পুরো বিবৃতিটি রয়েছে session.query():Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()
জাকুব কুকুল

4
@ জাকুকুল এটি নিজের থেকেই একটি উত্তর হওয়া উচিত - আমি সর্বদা ভাবতাম সাবকিউরিগুলি করার সময় কীভাবে এই সীমাবদ্ধতাটি পাওয়া যায় এবং গ্রুপ_বি এবং গণনা ব্যবহার করতে চাইতাম ..!
chris-sc

4
এই উত্তরের সম্পাদনাগুলি প্রথম বাক্যের ধরণের অর্থহীন nder "এর চেয়ে ভাল" কি ?
মার্ক আমেরিকা

36

আপনি যদি Table.queryসম্পত্তি ব্যবহার করছেন :

from sqlalchemy import func
Table.query.with_entities(Table.column, func.count(Table.column)).group_by(Table.column).all()

আপনি যদি session.query()পদ্ধতিটি ব্যবহার করছেন (যেমন মিনিওয়ার্কের উত্তরে বলা হয়েছে):

from sqlalchemy import func
session.query(Table.column, func.count(Table.column)).group_by(Table.column).all()

সত্তা সহ এক জন্য
এস্পোয়ার মুরহাবাজি

28

আপনি একাধিক গ্রুপ এবং তাদের ছেদটিতেও গণনা করতে পারেন:

self.session.query(func.count(Table.column1),Table.column1, Table.column2).group_by(Table.column1, Table.column2).all()

উপরের ক্যোয়ারী উভয় কলাম থেকে সমস্ত সম্ভাব্য মানের সংমিশ্রণের জন্য গণনা ফিরিয়ে দেবে।


প্রশ্নের জন্য ধন্যবাদ, এটি সম্পর্কে চিন্তা করার সময় আমি আমার একটি সম্পর্কিত প্রশ্নের উত্তর পেয়েছি। ;-)
fccoelho
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.