Создание определенной пользователем агрегации для SQL - PullRequest
0 голосов
/ 12 июля 2019

Вот пример того, что я имею в виду. Когда вы запрашиваете таблицу с помощью функции агрегации, вы должны иметь такой результат

Функция подсчета Tally

Table: tbl  

Tag length              
abc 8               
cde 8               
fgh 10      

SQL:

SELECT aggTally(Tag, Length) FROM tbl   

Результат:

2/8   
1/10            

Я очень новичок в C #, так как мне его создать и использовать dll?

Ответы [ 2 ]

0 голосов
/ 13 июля 2019

T-SQL подход:

CREATE TABLE dbo.TestTable (tag CHAR(3), taglen INT)
GO

INSERT INTO dbo.TestTable VALUES ('abs',8), ('cde', 8), ('fgh',10)
GO

;WITH TagTotal AS (SELECT taglen, COUNT(*) AS totallengthbytag
FROM dbo.TestTable
GROUP BY taglen)
SELECT a.totallengthbytag, a.taglen
FROM TagTotal a
0 голосов
/ 12 июля 2019

Я не вижу, как Tag используется, как упомянуто выше, но приведенный ниже код возвращает

2/8 1/10

->

    private static void TotalsByLength()
    {
        List<Tuple<string, int>> tagdata = new List<Tuple<string, int>>
        {
            new Tuple<string, int>("abs", 8),
            new Tuple<string, int>("cde", 8),
            new Tuple<string, int>("fgh", 10)
        };

        var tagcounts = from p in tagdata
            group p.Item2 by p.Item2 into g
            orderby g.Count() descending
            select new { g.Key, TotalOccurrence = g.Count() };

        foreach (var s in tagcounts)
        {
            Console.WriteLine("{0}/{1}", s.TotalOccurrence, s.Key );
        }
    }
...