zoukankan      html  css  js  c++  java
  • sql 子查询

    http://www.cnblogs.com/CareySon/archive/2011/07/18/2109406.html

    select a.alias, a.name, a.bandwidth, count(b.uuid) as cabinet from resource_idc a LEFT OUTER JOIN resource_cabinet b ON a.uuid=b.idc_uuid GROUP BY b.idc_uuid;
    --------+--------------+-----------+---------+
    | alias | name         | bandwidth | cabinet |
    +-------+--------------+-----------+---------+
    | wxxq  | 无锡新区     |     10000 |       4 |
    | bjtn  | 北京铜牛     |       400 |       1 |
    +-------+--------------+-----------+---------+
    
    select a.uuid, a.alias, a.capacity, a.idc_uuid as idc, count(b.subnet_uuid) as subnet from resource_cabinet a LEFT OUTER JOIN cabinet_subnet b ON a.uuid=b.cabinet_uuid GROUP BY b.cabinet_uuid;
    +--------------------------------------+----------+----------+--------------------------------------+--------+
    | uuid                                 | alias    | capacity | idc                                  | subnet |
    +--------------------------------------+----------+----------+--------------------------------------+--------+
    | 073130e9-64a5-47c3-b032-2d254fe43cd2 | wxxq-b1  |       42 | cec27a7a-0bac-4372-8bc4-954b07cefe46 |      1 |
    | 09401e18-89b4-4028-9224-a390e3112dfd | bjtn-g17 |       42 | e9465a14-934e-4ca4-b6da-27ac5b8c07a3 |      2 |
    | 4f1b18dd-de22-46e5-938e-2c3eb01876fe | wxxq-b2  |       42 | cec27a7a-0bac-4372-8bc4-954b07cefe46 |      1 |
    | 9f763b06-4015-4ddf-900a-7560099fc6b8 | wxxq-b3  |       42 | cec27a7a-0bac-4372-8bc4-954b07cefe46 |      1 |
    | cc9818b4-7afe-4fdf-b5fb-978a71994786 | wxxq-b4  |       42 | cec27a7a-0bac-4372-8bc4-954b07cefe46 |      1 |
    +--------------------------------------+----------+----------+--------------------------------------+--------+
    
    select a.alias, a.name, a.bandwidth, count(b.uuid) as cabinet, sum(b.subnet) as subnet 
    from resource_idc as a 
    LEFT OUTER JOIN 
    (select a.uuid, a.alias, a.capacity, a.idc_uuid, count(b.subnet_uuid) as subnet from resource_cabinet a LEFT OUTER JOIN cabinet_subnet b ON a.uuid=b.cabinet_uuid group by b.cabinet_uuid) as b 
    ON a.uuid=b.idc_uuid 
    GROUP BY b.idc_uuid;
    +-------+--------------+-----------+---------+--------+
    | alias | name         | bandwidth | cabinet | subnet |
    +-------+--------------+-----------+---------+--------+
    | wxxq  | 无锡新区     |     10000 |       4 |      4 |
    | bjtn  | 北京铜牛     |       400 |       1 |      2 |
    +-------+--------------+-----------+---------+--------+
    

    http://stackoverflow.com/questions/25392770/query-many-to-many-in-sqlalchemy
    http://pr8x.com/st/questions/29592559/sqlalchemy-filtering-count-in-many-to-many-relationship-query.html
    http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html#using-subqueries
    http://blog.csdn.net/raptor/article/details/48735159
    合并行数据
    http://stackoverflow.com/questions/26583832/sqlalchemy-group-concat-and-duplicates
    sqlalchemy

    
    @mod.route('/api/idc', methods=['GET'])
    def get_idc():
        total = len(Idc.query.all())
    
        query = Cabinet.query 
            .join(cabinet_subnet) 
            .join(Subnet) 
            .add_columns(Cabinet.uuid, Cabinet.idc_uuid, func.count(Subnet.uuid).label('subnet')) 
            .group_by(Cabinet.uuid).subquery()
    
        idces = Idc.query 
            .outerjoin(query, (Idc.uuid==query.c.idc_uuid)) 
            .add_columns(Idc.uuid, Idc.name, Idc.alias, Idc.bandwidth) 
            .add_columns(Idc.create_datetime, Idc.update_datetime, Idc.update_man) 
            .add_columns(func.count(query.c.uuid).label('cabinet'), func.sum(query.c.subnet).label('subnet')) 
            .group_by(query.c.idc_uuid) 
            .paginate(int(request.args['page']), int(request.args['limit']), False).items
    
        rows = [ {'uuid': idc.uuid, 'alias': idc.alias, 'name': idc.name, 'bandwidth': idc.bandwidth, 
                    'cabinet': idc.cabinet, 'subnet': str(idc.subnet), 'host': '', 'vhost': '', 'net': '', 'other': '', 
                 } for idc in idces ]
    
        results = {
            'totalCount': total,
            'rows': rows
        }
    
        return json.dumps(results)
    
  • 相关阅读:
    yii中的若干问题
    http请求头和响应头
    http 协议
    Jmeter -- 对并发认识的误区
    Linux top常用操作
    linux 查看系统性能
    Jmeter -- 循环控制器和线程并发(关注执行顺序)
    Jmeter -- 定时器
    性能指标:TPS 并发数 响应时间 QPS
    Jmeter -- 元件的作用域与执行顺序
  • 原文地址:https://www.cnblogs.com/liujitao79/p/4991775.html
Copyright © 2011-2022 走看看