Šajā rakstā mēs redzēsim, kā veikt filtra darbību ar skaitīšanas funkciju SQLAlchemy, salīdzinot ar PostgreSQL datu bāzi python.
Skaitīšana ar filtra operācijām tiek veikta dažādās metodēs, izmantojot dažādas funkcijas. Šāda veida matemātiskās darbības ir atkarīgas no datu bāzes. Programmā PostgreSQL skaitīšana tiek veikta, izmantojot funkciju count (), un filtra darbība tiek veikta, izmantojot filtru (). Programmā SQLAlchemy tādas vispārīgas funkcijas kā SUM, MIN, MAX tiek izsauktas tāpat kā parastās SQL funkcijas, izmantojot atribūtu func.
Dažas SQLAlchemy izmantotās funkcijas ir skaits, kubs, pašreizējais_datums, pašreizējais_laiks, maks., min., režīms utt.
Lietošana: func.count(). func.group_by(), func.max()
Demonstrācijas tabulas izveidošana
Importējiet nepieciešamās funkcijas no SQLAlchemy pakotnes. Izveidojiet savienojumu ar PostgreSQL datu bāzi, izmantojot funkciju create_engine(), kā parādīts zemāk, izveidojiet tabulu ar nosaukumu grāmatas ar kolonnām book_id un book_price. Ievietojiet ierakstu tabulās, izmantojot funkciju insert() un vērtības(), kā parādīts attēlā.
binārais koks pret bināro meklēšanas koku
Python3
# import necessary packages> import> sqlalchemy> from> sqlalchemy>import> create_engine, MetaData, Table,> Column, Numeric, Integer, VARCHAR> from> sqlalchemy.engine>import> result> > # establish connections> engine>=> create_engine(> >'database+ dialect://username:password@host:port/databasename '>)> > # initialize the Metadata Object> meta>=> MetaData(bind>=>engine)> MetaData.reflect(meta)> > # create a table schema> books>=> Table(> >'books'>, meta,> >Column(>'bookId'>, Integer, primary_key>=>True>),> >Column(>'book_price'>, Numeric),> >Column(>'genre'>, VARCHAR),> >Column(>'book_name'>, VARCHAR)> )> > meta.create_all(engine)> # insert records into the table> statement1>=> books.insert().values(bookId>=>1>, book_price>=>12.2>,> >genre>=> 'fiction'>,> >book_name>=> 'Old age'>)> statement2>=> books.insert().values(bookId>=>2>, book_price>=>13.2>,> >genre>=> 'non-fiction'>,> >book_name>=> 'Saturn rings'>)> statement3>=> books.insert().values(bookId>=>3>, book_price>=>121.6>,> >genre>=> 'fiction'>,> >book_name>=> 'Supernova'>)> statement4>=> books.insert().values(bookId>=>4>, book_price>=>100>,> >genre>=> 'non-fiction'>,> >book_name>=> 'History of the world'>)> statement5>=> books.insert().values(bookId>=>5>, book_price>=>1112.2>,> >genre>=> 'fiction'>,> >book_name>=> 'Sun city'>)> > # execute the insert records statement> engine.execute(statement1)> engine.execute(statement2)> engine.execute(statement3)> engine.execute(statement4)> engine.execute(statement5)> |
>
>
Izvade:

Tabulas paraugs
kaut kas priekš bfs
GroupBy un skaitīšanas ieviešana programmā SQLAlchemy
Funkcijas Groupby rakstīšanai ir nedaudz atšķirīga procedūra nekā parastajam SQL vaicājumam, kas parādīts zemāk
sqlalchemy.select([
Tabulasnosaukums.c.kolonnas_nosaukums,
sqlalchemy.func.count(Tabulasnosaukums.c.kolonnas_nosaukums)
]).group_by(Tabulasnosaukums.c.kolonnas_nosaukums).filter(Tabulasnosaukums.c.kolonnas_nosaukuma vērtība)
Iegūstiet grāmatu tabulu no metadatu objekta inicializācijas, kamēr izveidojat savienojumu ar datu bāzi. Nododiet SQL vaicājumu funkcijai execute () un iegūstiet visus rezultātus, izmantojot funkciju fetchall (). Izmantojiet for cilpu, lai atkārtotu rezultātus.
Tālāk sniegtais vaicājums atgriež to grāmatu skaitu dažādos žanros, kuru cenas ir lielākas par Rs. 50.
Python3
# Get the `books` table from the Metadata object> BOOKS>=> meta.tables[>'books'>]> > # SQLAlchemy Query to GROUP BY and filter function> query>=> sqlalchemy.select([> >BOOKS.c.genre,> >sqlalchemy.func.count(BOOKS.c.genre)> ]).group_by(BOOKS.c.genre).>filter>(BOOKS.c.book_price>>> > # Fetch all the records> result>=> engine.execute(query).fetchall()> > # View the records> for> record>in> result:> >print>(>'
'>, record)> |
dfa automātu piemēri
>
>
Izvade:

Skaitīšanas un filtra funkcijas izvade