我有一个看起来像这样的表:
Month Site Val
2009-12 Microsoft 10
2009-11 Microsoft 12
2009-10 Microsoft 13
2009-12 Google 20
2009-11 Google 21
2009-10 Google 22
Run Code Online (Sandbox Code Playgroud)
我希望得到一个二维表,为每个网站的月份提供"Val",例如:
Month Microsoft Google
2009-12 10 20
2009-11 12 21
2009-10 13 22
Run Code Online (Sandbox Code Playgroud)
但问题是,我不知道"网站"中可能存在的所有可能值.如果出现新网站,我想在结果表中自动获取新列.
我看到的所有可以执行此操作的代码示例都要求我在查询文本中对"Microsoft和Google"进行硬编码.
我看到一个没有,但它基本上是通过列出站点并在其中生成具有这些列名称的动态查询(连接字符串)来伪装它.
没有办法让SQL Server 2008在没有这样的黑客的情况下做到这一点吗?
注意:我需要能够运行这个作为我从ASP.Net发送的查询,我不能做存储过程或其他类似的东西.
谢谢!
丹尼尔
假设我有一个假设的表格,以便某些游戏中的某些玩家得分时记录:
name points
------------
bob 10
mike 03
mike 04
bob 06
Run Code Online (Sandbox Code Playgroud)
如何获得每个玩家的分数总和并在一个查询中并排显示?
总积分表
bob mike
16 07
Run Code Online (Sandbox Code Playgroud)
我的(伪)查询是:
SELECT sum(points) as "Bob" WHERE name="bob",
sum(points) as "Mike" WHERE name="mike"
FROM score_table
Run Code Online (Sandbox Code Playgroud) 我正在使用C#winforms创建一个需要将数据表转换为数据透视表的应用程序.我让数据透视表从SQL端运行良好,但从数据表创建它似乎比较棘手.我似乎无法为此找到.NET中的任何内容.
注意:我必须在.NET端执行此操作,因为我在创建数据透视之前操作数据.
我读过一些做过类似事情的文章,但我很难将它们应用到我的问题中.
*我有一个数据表,其中包含"StartDateTime","Tap"和"Data"列.应将startdates组合在一起并平均数据值(有时每个startdate有多个数据值).表格如下所示:

数据透视表应该输出如下图所示(尽管不是舍入值).列号是不同的抽头编号(每个唯一编号一个).

如何从数据表创建此数据透视表?
编辑:忘记提及,这些抽头值并不总是从1-4开始,它们的数量和价值各不相同.
我发现setPivotX(也setPivotY)在Android中很奇怪.如果在视图的比例设置为1.00时设置了枢轴,则不会发生任何事情(只是枢轴更改).但是如果比例不等于1.0f(例如setScaleX(0.9f))并且您设置了枢轴,则视图会相对(?)移动到新的轴.这不奇怪吗?我知道水平和垂直位置(平移)与枢轴值无关,但为什么视图以1.0f以外的比例因子移动?
无论有没有缩放部分,请检查一下.
public class ScaleView extends View {
private final ScaleGestureDetector mScaleGestureDetector;
public ScaleView(Context context, AttributeSet attrs) {
super(context, attrs);
//setScaleX(0.9f);
//setScaleY(0.9f);
mScaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.OnScaleGestureListener() {
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
// does nothing intentionally
}
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
setPivotX(detector.getFocusX());
setPivotY(detector.getFocusY());
return true;
}
@Override
public boolean onScale(ScaleGestureDetector detector) {
return false;
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
mScaleGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}
Run Code Online (Sandbox Code Playgroud)
如何在枢轴更改之前设置视图的相同位置?
我有下面的表格,我正在寻找枢轴,以便第1列中的描述成为新枢轴中的列标题.
Nominal Group | GrpID | Description | Value | CustomerID
---------------+-------+-----------------+-------------+-----------
Balance Sheet | 7 | BS description | 56973.10 | 2
Cost of Sales | 4 | COS description | 55950.17 | 2
Sales | 1 | Sales | -178796.18 | 2
Labour Costs | 5 | Wages | 18596.43 | 2
Overheads | 6 | Rent | 47276.48 | 2
Run Code Online (Sandbox Code Playgroud)
我正在使用下面的代码来获得下面的结果集:
select * from trialbalancegrouping
PIVOT (Sum(value)
for nominalgroupname in ([Sales],[Cost of Sales],[Labour Costs],[Overheads])) AS PVTtable
Run Code Online (Sandbox Code Playgroud)
- …
问题1:我有一张表格,其中包含以下结构和数据:
app_id transaction_id mobile_no node_id customer_attribute entered_value
100 111 9999999999 1 Q1 2
100 111 9999999999 2 Q2 1
100 111 9999999999 3 Q3 4
100 111 9999999999 4 Q4 3
100 111 9999999999 5 Q5 2
100 222 8888888888 4 Q4 1
100 222 8888888888 3 Q3 2
100 222 8888888888 2 Q2 1
100 222 8888888888 1 Q1 3
100 222 8888888888 5 Q5 4
Run Code Online (Sandbox Code Playgroud)
我想以下面的格式显示这些记录:
app_id | transaction_id | mobile | Q1 | Q2 | Q3 …Run Code Online (Sandbox Code Playgroud) 我想读一个表,其中的值将是sql查询结果的列名.例如,我有table1作为..
id col1 col2
----------------------
0 name ax
0 name2 bx
0 name3 cx
1 name dx
1 name2 ex
1 name3 fx
Run Code Online (Sandbox Code Playgroud)
如果你看到id = 0,名称的值为ax和名称2 - bx和name3 = cx而不是这是行,那么将列更容易显示为id,name,name2,name3现在我想要查询的结果看起来像这样
id name name2 name3
0 ax bx cx
1 dx ex fx
Run Code Online (Sandbox Code Playgroud)
有人可以帮我实现这个目标吗?
我有一个如下所示的数据框:
import pandas as pd
datelisttemp = pd.date_range('1/1/2014', periods=3, freq='D')
s = list(datelisttemp)*3
s.sort()
df = pd.DataFrame({'BORDER':['GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY','GERMANY','FRANCE','ITALY' ], 'HOUR1':[2 ,2 ,2 ,4 ,4 ,4 ,6 ,6, 6],'HOUR2':[3 ,3 ,3, 5 ,5 ,5, 7, 7, 7], 'HOUR3':[8 ,8 ,8, 12 ,12 ,12, 99, 99, 99]}, index=s)
Run Code Online (Sandbox Code Playgroud)
这给了我:
Out[458]: df
BORDER HOUR1 HOUR2 HOUR3
2014-01-01 GERMANY 2 3 8
2014-01-01 FRANCE 2 3 8
2014-01-01 ITALY 2 3 8
2014-01-02 GERMANY 4 5 12
2014-01-02 FRANCE 4 5 12
2014-01-02 ITALY 4 …Run Code Online (Sandbox Code Playgroud) 我写了一个网络刮刀,从产品表中提取信息并构建数据框.数据表有一个Description列,其中包含描述产品的逗号分隔的属性字符串.我想在数据框中为每个唯一属性创建一个列,并使用属性的子字符串填充该列中的行.示例df如下.
PRODUCTS DATE DESCRIPTION
Product A 2016-9-12 Steel, Red, High Hardness
Product B 2016-9-11 Blue, Lightweight, Steel
Product C 2016-9-12 Red
Run Code Online (Sandbox Code Playgroud)
我想第一步是将描述拆分成一个列表.
In: df2 = df['DESCRIPTION'].str.split(',')
Out:
DESCRIPTION
['Steel', 'Red', 'High Hardness']
['Blue', 'Lightweight', 'Steel']
['Red']
Run Code Online (Sandbox Code Playgroud)
我想要的输出如下表所示.列名不是特别重要.
PRODUCTS DATE STEEL_COL RED_COL HIGH HARDNESS_COL BLUE COL LIGHTWEIGHT_COL
Product A 2016-9-12 Steel Red High Hardness
Product B 2016-9-11 Steel Blue Lightweight
Product C 2016-9-12 Red
Run Code Online (Sandbox Code Playgroud)
我相信可以使用Pivot设置列,但我不确定建立它们后填充列的最Pythonic方法.任何帮助表示赞赏.
非常感谢您的回答.我选择@ MaxU的回答是正确的,因为它似乎稍微灵活一点,但@ piRSquared得到了一个非常相似的结果,甚至可能被认为是更多的Pythonic方法.我测试了两个版本,都做了我需要的.谢谢!
Hive是否具有动态数据透视功能?我能够找到常规的旋转(即这里),但它们似乎是硬编码的枢轴(在运行时已知的所有值)不是动态的(所有值在运行时确定).
如果它存在或某人有用户定义的代码,他们可以共享,这将是值得赞赏的.