CData Python Connector for Microsoft Dynamics 365

Build 22.0.8462

Aggregate Functions

Certain aggregate functions can also be used within SQLAlchemy by using the func module. First, you will need to import it:

from sqlalchemy.sql import func

Once imported, the following aggregate functions are available:

COUNT

This example counts the number of records in a set of groups using the session object's query() method.

rs = session.query(func.count(GoalHeadings.GoalHeadingId).label("CustomCount"), GoalHeadings.GoalHeadingId).group_by(GoalHeadings.GoalHeadingId)
for instance in rs:
	print("Count: ", instance.CustomCount)
	print("GoalHeadingId: ", instance.GoalHeadingId)
	print("---------")

Alternatively, you can execute COUNT using the session object's execute() method.

rs = session.execute(GoalHeadings_table.select().with_only_columns([func.count(GoalHeadings_table.c.GoalHeadingId).label("CustomCount"), GoalHeadings_table.c.GoalHeadingId])group_by(GoalHeadings_table.c.GoalHeadingId))
for instance in rs:

SUM

This example calculates the cumulative amount of a numeric column in a set of groups.

rs = session.query(func.sum(GoalHeadings.AnnualRevenue).label("CustomSum"), GoalHeadings.GoalHeadingId).group_by(GoalHeadings.GoalHeadingId)
for instance in rs:
	print("Sum: ", instance.CustomSum)
	print("GoalHeadingId: ", instance.GoalHeadingId)
	print("---------")

Alternatively, you can invoke SUM using the session object's execute() method.

rs = session.execute(GoalHeadings_table.select().with_only_columns([func.sum(GoalHeadings_table.c.AnnualRevenue).label("CustomSum"), GoalHeadings_table.c.GoalHeadingId]).group_by(GoalHeadings_table.c.GoalHeadingId))
for instance in rs:

AVG

This example calculates the average amount of a numeric column in a set of groups using the session object's query() method.

rs = session.query(func.avg(GoalHeadings.AnnualRevenue).label("CustomAvg"), GoalHeadings.GoalHeadingId).group_by(GoalHeadings.GoalHeadingId)
for instance in rs:
	print("Avg: ", instance.CustomAvg)
	print("GoalHeadingId: ", instance.GoalHeadingId)
	print("---------")

Alternatively, you can invoke AVG using the session object's execute() method.

rs = session.execute(GoalHeadings_table.select().with_only_columns([func.avg(GoalHeadings_table.c.AnnualRevenue).label("CustomAvg"), GoalHeadings_table.c.GoalHeadingId]).group_by(GoalHeadings_table.c.GoalHeadingId))
for instance in rs:

MAX and MIN

This example finds the maximum value and minimum value of a numeric column in a set of groups.

rs = session.query(func.max(GoalHeadings.AnnualRevenue).label("CustomMax"), func.min(GoalHeadings.AnnualRevenue).label("CustomMin"), GoalHeadings.GoalHeadingId).group_by(GoalHeadings.GoalHeadingId)
for instance in rs:
	print("Max: ", instance.CustomMax)
	print("Min: ", instance.CustomMin)
	print("GoalHeadingId: ", instance.GoalHeadingId)
	print("---------")

Alternatively, you can invoke MAX and MIN using the session object's execute() method.

rs = session.execute(GoalHeadings_table.select().with_only_columns([func.max(GoalHeadings_table.c.AnnualRevenue).label("CustomMax"), func.min(GoalHeadings_table.c.AnnualRevenue).label("CustomMin"), GoalHeadings_table.c.GoalHeadingId]).group_by(GoalHeadings_table.c.GoalHeadingId))
for instance in rs:

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8462