好的,这是我的查询: SELECT video_category, video_url, video_date, video_title, short_description, MAX(video_id) FROM videos GROUP BY video_category 当它提取数据时,我得到了video_id的正确的行,但是它为其他的类别提取了每个类别的第一行。 所以,当我得到最大的结果为类别1的video_id,我得到最大ID,但表中的第一行的url,date,标题和说明。 我怎么能拉到与最大ID结果对应的其他列? 编辑:修正。 SELECT * FROM videos WHERE video_id IN ( SELECT DISTINCT MAX(video_id) FROM videos GROUP BY video_category ) ORDER BY video_category ASC
我有这个结构 Customer – has many Orders – has many OrderItems 我想通过给定一个OrderItems子集的LINQ生成一个CustomerItems列表: List of new { Customer, List<OrderItem> Items } 这是客户从项目子集中订购的所有项目的分组 我怎样才能使用LINQ来回溯通过客户订单和组来生成这个对象? 到目前为止,我在类似的东西 items .GroupBy(i => i, i => i.Order.Customer, (i, customer) => new {customer, i}) 但那显然不是一个List。 我猜我需要一个SelectMany在那里,但可以做一些指针。
我想开始使用dplyr来代替ddply,但是我无法得到它是如何工作的(我已阅读文档)。 例如,为什么当我尝试mutate()时,“group_by”函数不工作,因为它应该? 看mtcars: 库(车) 说我做了一个data.frame这是一个mtcars总结,分为“cyl”和“齿轮”: df1 <- mtcars %.% group_by(cyl, gear) %.% summarise( newvar = sum(wt) ) 然后说我想进一步总结这个数据框。 使用ddply,这将是直接的,但是当我尝试使用dplyr时,它实际上并不是“按…分组”: df2 <- df1 %.% group_by(cyl) %.% mutate( newvar2 = newvar + 5 ) 仍产生一个未分组的输出: cyl gear newvar newvar2 1 6 3 6.675 11.675 2 4 4 19.025 24.025 3 6 4 12.375 17.375 4 6 5 […]
我在IPython中有以下数据框,每一行是一个股票: In [261]: bdata Out[261]: <class 'pandas.core.frame.DataFrame'> Int64Index: 21210 entries, 0 to 21209 Data columns: BloombergTicker 21206 non-null values Company 21210 non-null values Country 21210 non-null values MarketCap 21210 non-null values PriceReturn 21210 non-null values SEDOL 21210 non-null values yearmonth 21210 non-null values dtypes: float64(2), int64(1), object(4) 我想要应用一个groupby操作,计算每个date在“yearmonth”列中的所有内容的上限加权平均回报。 这按预期工作: In [262]: bdata.groupby("yearmonth").apply(lambda x: (x["PriceReturn"]*x["MarketCap"]/x["MarketCap"].sum()).sum()) Out[262]: […]
我开始学习pandas,并试图find最艰难的(或pandasthonic?)方式来完成某些任务。 假设我们有一个DataFrame,列A,B和C. 列A包含布尔值:每行的A值为true或false。 B列有一些我们想要绘制的重要值。 我们想要发现的是,将A设置为false的行的B值之间的细微差别与具有A的行的B值是正确的。 换句话说, 我怎样才能根据列A的值(true或false)进行分组,然后在同一个图上绘制两个组的列B的值? 这两个数据集应该有不同的颜色,以便能够区分这些点。 接下来,让我们给这个程序增加一个特性:在绘图之前,我们要为每一行计算另一个值并将其存储在D列中。这个值是logging之前整个五分钟内存储在B中的所有数据的平均值 – 但我们只包含存储在A中的具有相同布尔值的行 换句话说, 如果我有一行,其中A=True , time=t ,我想计算D列的值,它是从时间t-5到t所有logging的B的均值,它们具有相同的A=True 。 在这种情况下,我们怎样才能在A的值上执行groupby,然后将这个计算应用到每个单独的组,然后绘制这两个组的D值?
我试图根据同一个表中的ProductID在新列中获得“现金”,“支票”和“信用卡”总计。 表 – 付款 +———–+————+—————+——–+ | ProductID | SaleDate | PaymentMethod | Amount | +———–+————+—————+——–+ | 3 | 2012-02-10 | Cash | 10 | | 3 | 2012-02-10 | Cash | 10 | | 3 | 2012-02-10 | Check | 15 | | 3 | 2012-02-10 | Credit Card | 25 | | 4 | […]
我有一个表有一个processed_timestamp列 – 如果一个logging已被处理,那么该字段包含它处理的date时间,否则它是空的。 我想写一个返回两行的查询: NULL xx — count of records with null timestamps NOT NULL yy — count of records with non-null timestamps 那可能吗? 更新:表格相当大,所以效率很重要。 我可以运行两个查询分别计算每个总数,但是如果可以避免的话,我想避免两次查询表。
我正在尝试创build更新查询,并在获取正确的语法方面取得一点进展。 以下查询正在工作: SELECT t.Index1, t.Index2, COUNT( m.EventType ) FROM Table t LEFT JOIN MEvents m ON (m.Index1 = t.Index1 AND m.Index2 = t.Index2 AND (m.EventType = 'A' OR m.EventType = 'B') ) WHERE (t.SpecialEventCount IS NULL) GROUP BY t.Index1, t.Index2 它创build一个三元组Index1,Index2,EventCounts的列表。 它仅在t.SpecialEventCount为NULL的情况下执行此操作。 我正在尝试编写的更新查询应将此SpecialEventCount设置为该计数,即上述查询中的COUNT(m.EventType)。 这个数字可能是0或任何正数(因此左连接)。 索引1和索引2在表t中是唯一的,它们用于识别MEvent中的事件。 我如何修改select查询成为更新查询? 也就是说 UPDATE Table SET SpecialEventCount=COUNT(m.EventType)….. 但我很困惑把什么放在哪里,失败了许多不同的猜测。
我正在使用data.table包加速数据集上的汇总统计信息收集。 我很好奇,如果有一种方法可以由多个列组成。 我的数据如下所示: purchaseAmt adShown url 15.54 00001 150000001 4.82 00002 150000001 157.99 05005 776300044 … … … 我可以做这样的事情: adShownMedian <- df1[,median(purchaseAmt),by="adShown"] 得到每个广告的中位数。 我将如何做一些结合adShown和url ? 我试过这个: adShownMedian <- df1[,median(purchaseAmt),by=c("adShown","url")] 但没有运气。 有什么build议么?
在C#中会是这样的: table .GroupBy(row => row.SomeColumn) .Select(group => group .OrderBy(row => row.AnotherColumn) .First() ) Linq-To-Sql将其转换为以下T-SQL代码: SELECT [t3].[AnotherColumn], [t3].[SomeColumn] FROM ( SELECT [t0].[SomeColumn] FROM [Table] AS [t0] GROUP BY [t0].[SomeColumn] ) AS [t1] OUTER APPLY ( SELECT TOP (1) [t2].[AnotherColumn], [t2].[SomeColumn] FROM [Table] AS [t2] WHERE (([t1].[SomeColumn] IS NULL) AND ([t2].[SomeColumn] IS NULL)) OR (([t1].[SomeColumn] IS NOT […]