查找具有其他属性的最小最大?

问题描述

假设我有桌子 Clickhouse中的select * from t where stringB in (select stringB from (select * from (select * from t where (stringB in (select stringB from t where oID = 1 and dID > 0 group by stringB having count(*) > 1) or stringA in (select stringA from t where oID = 1 and dID > 0 group by stringA having count(*) > 1)) and dID in (select dID from t where oID = 1 and dID > 0 group by dID having count(*) > 1)) as foo) as bar where oID = 1 and dID > 0 group by stringB having count(*) > 1) or stringA in (select stringA from (select * from (select * from t where (stringB in (select stringB from t where oID = 1 and dID > 0 group by stringB having count(*) > 1) or stringA in (select stringA from t where oID = 1 and dID > 0 group by stringA having count(*) > 1)) and dID in (select dID from t where oID = 1 and dID > 0 group by dID having count(*) > 1)) as foo1) as bar1 where oID = 1 and dID > 0 group by stringA having count(*) > 1); 列。

如何找到time_created,view_type,view_id分组的适当time_created的最小和最大view_id

这是启动sql

view_type

以及如何将select min(time_created) as min_time_created,max(time_created) as max_time_created,view_type from views group by view_type; 添加到每个结果列。同样考虑到view_id不是唯一的。

解决方法

该查询似乎可以帮助您

SELECT view_type,min(time_created) as min_time_created,max(time_created) as max_time_created
  argMin(view_id,time_created) as min_view_id,argMax(view_id,time_created) as max_view_id
FROM views
GROUP BY view_type
,

尝试一下并使用窗口功能

using AutoMapper;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;

public class WarehouseObj
{
    public Warehouse[] Whs { get; set; }
    public string Location { get; set; }
}

public class Warehouse
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class Wareh
{
    public string wid { get; set; }
    public string wname { get; set; }
}

public class Root
{
    public List<Wareh> wareh { get; set; }
    public string lc { get; set; }
}


public class Program
{
    public static void Main()
    {
        var jsonString = @"{ 'wareh': [{
    'wid': '1234','wname': 'W0986E'
    },{
    'wid': '1235','wname': 'E0948T'
    }],'lc' : 'TTR0'}";

        var config = new MapperConfiguration(cfg =>
        {

            cfg.CreateMap<Root,WarehouseObj>()
            .ForMember(dest => dest.Whs,opts => opts.MapFrom(src => src.wareh))
            .ForMember(dest => dest.Location,opts => opts.MapFrom(src => src.lc));

            cfg.CreateMap<Wareh,Warehouse>()
            .ForMember(dest => dest.Id,opts => opts.MapFrom(src => src.wid))
            .ForMember(dest => dest.Name,opts => opts.MapFrom(src => src.wname));
        });

        IMapper mapper = config.CreateMapper();
        var jArray = JsonConvert.DeserializeObject<Root>(jsonString);
        var mapped = mapper.Map<WarehouseObj>(jArray);
        Console.WriteLine("{0}-{1}",JsonConvert.SerializeObject(mapper.Map<WarehouseObj>(jArray).Whs),mapper.Map<WarehouseObj>(jArray).Location);

    }
}