docs: def extract_aggregate(dstore, what):
      """
      /extract/aggregate/avg_losses?
      kind=mean&loss_type=structural&tag=taxonomy&tag=occupancy
      """
      name, qstring = what.split('?', 1)
      info = get_info(dstore)
      qdic = parse(qstring, info)
      suffix = '-rlzs' if qdic['rlzs'] else '-stats'
      tagnames = qdic.get('tag', [])
      assetcol = dstore['assetcol']
      ltypes = qdic.get('loss_type', [])
      if ltypes:
          array = dstore[name + suffix][:, qdic['k'][0], ltypes[0]]
      else:
          array = dstore[name + suffix][:, qdic['k'][0]]
      aw = ArrayWrapper(assetcol.aggregate_by(tagnames, array), {})
      for tagname in tagnames:
          setattr(aw, tagname, getattr(assetcol.tagcol, tagname))
      aw.tagnames = encode(tagnames)
      if not ltypes:
          aw.extra = ('loss_type',) + tuple(info['loss_types'])
      return aw