python类sum()的实例源码

adminView.py 文件源码 项目:movebot 作者: NVISO-BE 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def getScore(username=None):
    counts = db.session.query(User.name, func.sum(DailyCompletion.score).label("score")).join(
        User.points).group_by(User.name).order_by(func.sum(DailyCompletion.score).desc())
    if username:
        counts = counts.filter(User.slackHandle == username)

    if not counts.count():
        return None
    elif username:
        return counts.first()
    else:
        return counts.all()
telegram.py 文件源码 项目:freqtrade 作者: gcarq 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def _performance(bot: Bot, update: Update) -> None:
    """
    Handler for /performance.
    Shows a performance statistic from finished trades
    :param bot: telegram bot
    :param update: message update
    :return: None
    """
    if get_state() != State.RUNNING:
        send_msg('`trader is not running`', bot=bot)
        return

    pair_rates = Trade.session.query(Trade.pair, func.sum(Trade.close_profit).label('profit_sum')) \
        .filter(Trade.is_open.is_(False)) \
        .group_by(Trade.pair) \
        .order_by(text('profit_sum DESC')) \
        .all()

    stats = '\n'.join('{index}.\t<code>{pair}\t{profit:.2f}%</code>'.format(
        index=i + 1,
        pair=pair,
        profit=round(rate * 100, 2)
    ) for i, (pair, rate) in enumerate(pair_rates))

    message = '<b>Performance:</b>\n{}'.format(stats)
    logger.debug(message)
    send_msg(message, parse_mode=ParseMode.HTML)
dao_exchange_rate.py 文件源码 项目:gold-digger 作者: business-factory 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def get_sum_of_rates_in_period(self, start_date, end_date, currency):
        """
        SELECT provider_id, count(*), SUM(rate) FROM "USD_exchange_rates" WHERE date >= '%Y-%m-%d' AND date <= '%Y-%m-%d' GROUP BY provider_id
        """
        return self.db_session\
            .query(ExchangeRate.provider_id, func.count(), func.sum(ExchangeRate.rate))\
            .filter(
                and_(ExchangeRate.date >= start_date,
                     ExchangeRate.date <= end_date,
                     ExchangeRate.currency == currency,
                     ExchangeRate.rate.isnot(None))
            )\
            .group_by(ExchangeRate.provider_id)\
            .order_by(ExchangeRate.provider_id)\
            .all()
models.py 文件源码 项目:salicapi 作者: Lafaiet 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def total(self, cgccpf):

      res = self.sql_connector.session.query(
                                               func.sum(CaptacaoModel.CaptacaoReal).label('total_doado')

                                              ).join(InteressadoModel, CaptacaoModel.CgcCpfMecena==InteressadoModel.CgcCpf)

      res = res.filter(InteressadoModel.CgcCpf.like('%' + cgccpf + '%') )
discordBot.py 文件源码 项目:destiny-gotg 作者: adherrling 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def single_stat_request(player, code, stat):
    """Actually retrieves the stat and returns the stat info in an embed"""
    session = Session()
    message = ""
    if code == 1:
        (table, col, message) = stat_dict[stat]
        columns = [col]
        res = session.query(*(getattr(table, column) for column in columns), Account.display_name).join(Account).filter(Account.display_name == player).first()
        #Returns a tuple containing the stat, but only the first element is defined for some reason.
        num = truncate_decimals(res[0])
        name = res[1]
    elif code == 2 or code == 3:
        (table, col, message) = medal_dict[stat]
        columns = [col]
        res = session.query(func.sum(*(getattr(table, column) for column in columns))).join(Account).filter(Account.display_name == player).group_by(AccountMedals.id).first()
        num = float(res[0])
        name = player
        if message != "Activities Entered" and message != "Total Number of Medals" and message != "Total Medal Score":
            message = f"Total {message} Medals"
        if code == 3:
            denominator = session.query(PvPAggregate.activitiesEntered).join(Account).filter(Account.display_name == player).first()
            act = denominator[0]
            num = num/act
            if message != "Activities Entered" and message != "Total Number of Medals" and message != "Total Medal Score":
                message = f"{message} Medals per Game"
    elif code == 4:
        (table, col, message) = character_dict[stat]
        columns = [col]
        res = session.query(func.max(*(getattr(table, column) for column in columns)), Account.display_name).join(Account).filter(Account.display_name == player).first()
        #Returns a tuple containing the stat, but only the first element is defined for some reason.
        num = truncate_decimals(res[0])
        name = res[1]
    #em = discord.Embed(title = f"{author}{message}{result}", colour=0xADD8E6)
    em = f"```{message} for {name}: {num}```"
    return em
discordBot.py 文件源码 项目:destiny-gotg 作者: adherrling 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def multi_stat_request(players, code, stat):
    session = Session()
    data = []
    if code == 1:
        (table, col, message) = stat_dict[stat]
        columns = [col]
        res = session.query(*(getattr(table, column) for column in columns), Account.display_name).join(Account).filter(Account.display_name.in_(players)).order_by(Account.display_name).all()
        data = [(item[1], truncate_decimals(item[0])) for item in res if item[0] is not None]
    elif code == 2 or code == 3:
        (table, col, message) = medal_dict[stat]
        columns = [col]
        res = session.query(func.sum(*(getattr(table, column) for column in columns)), Account.display_name).join(Account).filter(Account.display_name.in_(players)).group_by(AccountMedals.id).order_by(Account.display_name).all()
        data = [(item[1], truncate_decimals(item[0])) for item in res if item[0] is not None]
        if code == 3:
            num_activities = session.query(PvPAggregate.activitiesEntered).join(Account).filter(Account.display_name.in_(players)).order_by(Account.display_name).all()
            data = [(res[i][1], truncate_decimals(float(res[i][0])/num_activities[i][0])) for i in range(len(res)) if res[i][0] is not None]
    elif code == 4:
        (table, col, message) = pveStatDict[stat]
        columns = [col]
        res = session.query(*(getattr(table, column) for column in columns), Account.display_name).join(Account).filter(Account.display_name.in_(players)).order_by(Account.display_name).all()
        data = [(item[1], truncate_decimals(item[0])) for item in res if item[0] is not None]
    data = sorted(data, key=lambda x: x[1], reverse=True)
    if (code == 2 or code == 3) and message != "Activities Entered" and message != "Total Number of Medals" and message != "Total Medal Score":
        message = f"Total {message} Medals"
    em = discord.Embed(title = f"{message}", colour=0xADD8E6)
    if len(data) > 10:
        data = data[:9]
    for (name, num) in data:
        em.add_field(name=name, value=num)
    return em
search.py 文件源码 项目:librarian 作者: HERA-Team 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def _obs_get_total_size():
    from sqlalchemy import func
    from .file import File
    from .observation import Observation
    return db.session.query(func.sum(File.size)).filter(File.obsid == Observation.obsid).as_scalar()
observation.py 文件源码 项目:librarian 作者: HERA-Team 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def total_size(self):
        "The total size (in bytes) of all Files associated with this session."
        from sqlalchemy import func
        from .file import File
        my_obsids = db.session.query(Observation.obsid).filter(Observation.session_id == self.id)
        return (db.session.query(func.sum(File.size))
                .filter(File.obsid.in_(my_obsids))
                .scalar())
observation.py 文件源码 项目:librarian 作者: HERA-Team 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def total_size(self):
        "The total size (in bytes) of all Files associated with this observation."
        from sqlalchemy import func
        from .file import File
        return (db.session.query(func.sum(File.size))
                .filter(File.obsid == self.obsid)
                .scalar())
base.py 文件源码 项目:backfeed-protocol 作者: Backfeed 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def sum_equally_voted_reputation(self, contribution, value):
        """return the sum of reputation of evaluators of evaluation.contribution that
        have evaluated the same value"""
        equally_voted_rep = DBSession.query(func.sum(User.reputation)).\
            join(Evaluation).\
            filter(Evaluation.contribution_id == contribution.id).\
            filter(Evaluation.value == value).\
            one()[0] or 0
        return equally_voted_rep
base.py 文件源码 项目:backfeed-protocol 作者: Backfeed 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def total_reputation(self):
        return DBSession.query(func.sum(User.reputation)).filter(User.contract == self).one()[0]
replica.py 文件源码 项目:rucio 作者: rucio01 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_sum_count_being_deleted(rse_id, session=None):
    """

    :param rse_id: The id of the RSE.
    :param session: The database session in use.

    :returns: A dictionary with total and bytes.
    """
    none_value = None
    total, bytes = session.query(func.count(models.RSEFileAssociation.tombstone), func.sum(models.RSEFileAssociation.bytes)).filter_by(rse_id=rse_id).\
        filter(models.RSEFileAssociation.tombstone != none_value).\
        filter(models.RSEFileAssociation.state == ReplicaState.BEING_DELETED).\
        one()
    return {'bytes': bytes or 0, 'total': total or 0}
helpers.py 文件源码 项目:metaseek 作者: ahoarfrost 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def filterDatasetQueryObjectWithRules(queryObject,rules):
    for rule in rules:
        field = rule['field']
        ruletype = rule['type']
        value = rule['value']
        queryObject = filterQueryByRule(Dataset,queryObject,field,ruletype,value)
    return queryObject


# Create and run the query for
# Group by a column and return the sum for each group
rais.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'average_age': func.avg(cls.age),
            'average_wage': func.avg(cls.wage),
            'wage': func.sum(cls.wage),
            'jobs': func.count(cls.employee),
            'average_establishment_size': func.count(cls.employee) / func.count(distinct(cls.establishment))    
        }[value]
hedu.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'enrolleds': func.count(),
            'entrants': func.sum(cls.entrant),
            'graduates': func.sum(cls.graduate),
            'average_age': func.avg(cls.age)
        }[value]
comtrade.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'weight': func.sum(cls.weight),
            'value': func.sum(cls.value),
        }[value]
cnes_professional.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'professionals': func.count(),
            'other_hours_worked': func.sum(cls.other_hours_worked),
            'hospital_hour': func.sum(cls.hospital_hour),
            'ambulatory_hour': func.sum(cls.ambulatory_hour),
        }[value]
cnes_bed.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'beds': func.sum(cls.number_existing_bed),
            'number_existing_bed': func.sum(cls.number_existing_bed),
            'number_existing_contract': func.sum(cls.number_existing_contract),
            'number_sus_bed': func.sum(cls.number_sus_bed),
            'number_non_sus_bed': func.sum(cls.number_non_sus_bed),
        }[value]
secex.py 文件源码 项目:dataviva-api 作者: DataViva 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def aggregate(cls, value):
        return {
            'value': func.sum(cls.value),
            'kg': func.sum(cls.kg),
        }[value]
test_sqlalchemy_bigquery.py 文件源码 项目:pybigquery 作者: mxmzdlv 项目源码 文件源码 阅读 41 收藏 0 点赞 0 评论 0
def query(table):
    col1 = literal_column("TIMESTAMP_TRUNC(timestamp, DAY)").label("timestamp_label")
    col2 = func.sum(table.c.integer)
    query = (
        select([
            col1,
            col2,
        ])
        .where(col1 < '2017-01-01 00:00:00')
        .group_by(col1)
        .order_by(col2)
    )
    return query


问题


面经


文章

微信
公众号

扫码关注公众号