С Новым годом! Форум программистов, компьютерный форум, киберфорум
LINQ
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
78 / 67 / 13
Регистрация: 04.10.2018
Сообщений: 330

LINQ group by Max

14.01.2020, 00:48. Показов 4698. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброй ночи. Есть запрос группирует по полю, и выводит максимум, все хорошо. Но мне к Value, и idGroup, нужно получить дату. Не как не могу понять как сделать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
 var q =
                     from c in db.TableOne
                     from p in db.TableTwo
                     where (c.Name== p.Name)
                     group p by c.Name into g
 
                     select new
                     {
                         g.Key,
                         MaxData = g.Max(p => p.Value),
                         ///Есть ли возможность получить дату?
                     };
Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2020, 00:48
Ответы с готовыми решениями:

Запрос с Group By на LINQ
Есть DataTable dt = new DataTable("index"); dt.Columns.Add("X", typeof(double)); ...

LINQ Group by, группировка по полям с разными значениями
Здравствуйте, задача заключается в следующем. Есть табличка вида Заказ Цена сделать сайт 100 сделать...

Mixing of GROUP columns (MIN(),MAX(),COUNT(),.) with no GROUP columns is illegal if there is no GROUP BY clause
Такая ошибка: КОД: $result=mysql_query("SELECT description, min(schedule.date) as date FROM schedule where...

2
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
14.01.2020, 08:54
Varyna, сбрось классы и данные.
0
78 / 67 / 13
Регистрация: 04.10.2018
Сообщений: 330
14.01.2020, 11:10  [ТС]
AndreyVorobey,

C#
1
2
3
4
5
6
7
8
9
10
11
12
public class ParametrDTO
    {
        int Parametrid { get; set; }
        string Name { get; set; }
        string Formula { get; set; }
        public ParametrDTO(int parametrid, string name, string formula)
        {
            Parametrid = parametrid;
            Name = name;
            Formula = formula;
        }
    }

C#
1
2
3
4
5
6
7
8
9
10
11
12
public class ParametrDTO
    {
        int Parametrid { get; set; }
        string Name { get; set; }
        string Formula { get; set; }
        public ParametrDTO(int parametrid, string name, string formula)
        {
            Parametrid = parametrid;
            Name = name;
            Formula = formula;
        }
    }


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 List<ParametrDTO> parametrDTOs = new List<ParametrDTO>();
            parametrDTOs.Add( new ParametrDTO (1, "Первый", "1+1+3"));
            parametrDTOs.Add(new ParametrDTO(2, "Два", "1+1+4"));
            parametrDTOs.Add(new ParametrDTO(3, "Три", "1+1+1"));
 
            List<ValueDTO> valueDTOs = new List<ValueDTO>();
            valueDTOs.Add(new ValueDTO(1, Convert.ToDateTime("2020-01-01"), 22));
            valueDTOs.Add(new ValueDTO(1, Convert.ToDateTime("2020-01-02"), 25));
            valueDTOs.Add(new ValueDTO(1, Convert.ToDateTime("2020-01-03"), 21));
            valueDTOs.Add(new ValueDTO(1, Convert.ToDateTime("2020-01-04"), 1));
            valueDTOs.Add(new ValueDTO(2, Convert.ToDateTime("2020-01-10"), 11));
            valueDTOs.Add(new ValueDTO(3, Convert.ToDateTime("2020-01-04"), 1));
            valueDTOs.Add(new ValueDTO(3, Convert.ToDateTime("2020-01-12"), 3));
            valueDTOs.Add(new ValueDTO(3, Convert.ToDateTime("2020-01-14"), 4));
Добавлено через 49 минут
Что то я со спехи намудрил.

C#
1
2
3
4
5
6
7
8
9
10
11
public class ValueDTO
    {
        public int ParametridValue { get; set; }
        public DateTime Date { get; set; }
        public Single X { get; set; }
        public ValueDTO(int parametridValue , DateTime date, Single x)
        {
            ParametridValue = parametridValue;
            Date = date;
            X = x;
        }
Получается нужно сделать
1) inner join Parametrid = ParametridValue
2) сгруппировать по Parametrid
3) найти максимум по каждому Parametrid,.
4) Вывести дату на которой был максимум.
Первых три пункта сделал. А вот четвертый не получается.

Добавлено через 1 час 10 минут
Решение.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
var ress = res.GroupBy(t => t.Parametrid)
                 .Select(g =>
                 {
                     var maxParametr = g.OrderBy(m => m.Rez).LastOrDefault();
 
                     return new
                     {
                      
                         Date= maxParametr .Date ,
                         id = maxParametr .Parametrid,
                         Rez = g.Max(dt => dt.X)
                     };
                 });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2020, 11:10
Помогаю со студенческими работами здесь

LINQ GROUP
Элементы не группируются: Код: Console.WriteLine(&quot;Начальные значения:&quot;); // Читаем из файла ...

LINQ с GROUP BY
Объясните как это работает? вот тут есть статья в ней такой пример string s = &quot;LINQ is a set of extensions to the .NET Framework that...

Переписать SQL с GROUP BY на LINQ
Добрый день, форумчане. Есть запрос на SQl select prepodavatel, auditoriya, predmet from zanyatie where para=1 and den_ned=1 ...

Linq group by: нужны только неповторяющиеся данные о Partners
IQueryable&lt;UserModel&gt; users = from u in dataContext.aspnet_Users join p in dataContext.Partners on u.UserId...

Linq и max()
Здравствуйте! Работаю с MongoDB через linq, подскажите как выбрать объект с максимальным id. Я делаю так, но не работает: var MaxId...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru