标签: pivot

SQL Server可以在不知道结果列名的情况下进行Pivot吗?

我有一个看起来像这样的表:

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发送的查询,我不能做存储过程或其他类似的东西.

谢谢!
丹尼尔

sql pivot sql-server-2008

12
推荐指数
2
解决办法
5023
查看次数

使用MySQL查询选择多个和,并将它们显示在单独的列中

假设我有一个假设的表格,以便某些游戏中的某些玩家得分时记录:

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)

mysql sql pivot

12
推荐指数
3
解决办法
2万
查看次数

从DataTable创建数据透视表

我正在使用C#winforms创建一个需要将数据表转换为数据透视表的应用程序.我让数据透视表从SQL端运行良好,但从数据表创建它似乎比较棘手.我似乎无法为此找到.NET中的任何内容.

注意:我必须在.NET端执行此操作,因为我在创建数据透视之前操作数据.

我读过一些做过类似事情的文章,但我很难将它们应用到我的问题中.

*我有一个数据表,其中包含"StartDateTime","Tap"和"Data"列.应将startdates组合在一起并平均数据值(有时每个startdate有多个数据值).表格如下所示:

在此输入图像描述

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

数据透视表

如何从数据表创建此数据透视表?

编辑:忘记提及,这些抽头值并不总是从1-4开始,它们的数量和价值各不相同.

c# datatable pivot pivot-table winforms

12
推荐指数
1
解决办法
5万
查看次数

setPivotX在缩放视图上工作奇怪

我发现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)

如何在枢轴更改之前设置视图的相同位置?

android pivot view scale

12
推荐指数
1
解决办法
1万
查看次数

数据透视表返回多行为NULL,结果应该在一行上分组

我有下面的表格,我正在寻找枢轴,以便第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)

- …

sql sql-server pivot group-by

12
推荐指数
1
解决办法
1万
查看次数

mysql pivot/crosstab查询

问题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)

mysql sql pivot

11
推荐指数
2
解决办法
2万
查看次数

在SQL查询结果中将列值设置为列名

我想读一个表,其中的值将是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)

有人可以帮我实现这个目标吗?

mysql sql pivot

11
推荐指数
2
解决办法
3万
查看次数

如何在熊猫中取消堆叠(或转动?)

我有一个如下所示的数据框:

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)

python stack pivot pandas

11
推荐指数
2
解决办法
2万
查看次数

让Pandas列包含列表,如何将唯一列表元素转移到列?

我写了一个网络刮刀,从产品表中提取信息并构建数据框.数据表有一个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方法.任何帮助表示赞赏.

UPDATE

非常感谢您的回答.我选择@ MaxU的回答是正确的,因为它似乎稍微灵活一点,但@ piRSquared得到了一个非常相似的结果,甚至可能被认为是更多的Pythonic方法.我测试了两个版本,都做了我需要的.谢谢!

python pivot numpy dataframe pandas

11
推荐指数
2
解决办法
2441
查看次数

Hive是否具有动态枢轴功能

Hive是否具有动态数据透视功能?我能够找到常规的旋转(即这里),但它们似乎是硬编码的枢轴(在运行时已知的所有值)不是动态的(所有值在运行时确定).

如果它存在或某人有用户定义的代码,他们可以共享,这将是值得赞赏的.

hadoop hive pivot hql azure

11
推荐指数
1
解决办法
933
查看次数