标签: pivot-table

使用SQL Server中的"Pivot"将行转换为列

我已经阅读了MS数据透视表上的内容,但我仍然遇到问题.

我有一个正在创建的临时表,我们会说第1列是商店号,第2列是周数,最后第3列是某种类型的总和.周数也是动态的,商店数是静态的.

Store      Week     xCount
-------    ----     ------
102        1        96
101        1        138
105        1        37
109        1        59
101        2        282
102        2        212
105        2        78
109        2        97
105        3        60
102        3        123
101        3        220
109        3        87
Run Code Online (Sandbox Code Playgroud)

我希望它作为一个数据透视表出来,像这样:

Store        1          2          3        4        5        6....
----- 
101        138        282        220
102         96        212        123
105         37        
109
Run Code Online (Sandbox Code Playgroud)

将数字存储在侧面,将数字存储在顶部.

sql sql-server pivot pivot-table

271
推荐指数
6
解决办法
79万
查看次数

MySQL - 行到列

我试图搜索帖子,但我只找到了SQL Server/Access的解决方案.我需要一个MySQL(5.X)的解决方案.

我有一个表(称为历史)有3列:hostid,itemname,itemvalue.
如果我执行select(select * from history),它将返回

   +--------+----------+-----------+
   | hostid | itemname | itemvalue |
   +--------+----------+-----------+
   |   1    |    A     |    10     |
   +--------+----------+-----------+
   |   1    |    B     |     3     |
   +--------+----------+-----------+
   |   2    |    A     |     9     |
   +--------+----------+-----------+
   |   2    |    c     |    40     |
   +--------+----------+-----------+
Run Code Online (Sandbox Code Playgroud)

如何查询数据库以返回类似的内容

   +--------+------+-----+-----+
   | hostid |   A  |  B  |  C  |
   +--------+------+-----+-----+
   |   1    |  10  |  3  |  0  |
   +--------+------+-----+-----+
   |   2    |   9  |  0  |  40 …
Run Code Online (Sandbox Code Playgroud)

mysql sql etl pivot-table crosstab

169
推荐指数
8
解决办法
22万
查看次数

是否可以使用LINQ旋转数据?

我是LINQ的新手,但我想知道是否可以使用LINQ从以下布局转移数据:

CustID | OrderDate | Qty
1      | 1/1/2008  | 100
2      | 1/2/2008  | 200
1      | 2/2/2008  | 350
2      | 2/28/2008 | 221
1      | 3/12/2008 | 250
2      | 3/15/2008 | 2150
Run Code Online (Sandbox Code Playgroud)

进入这样的事情:

CustID  | Jan- 2008 | Feb- 2008 | Mar - 2008 |
1       | 100       | 350       |  250
2       | 200       | 221       | 2150
Run Code Online (Sandbox Code Playgroud)

linq pivot-table

167
推荐指数
3
解决办法
7万
查看次数

简单的数据透视表来计算唯一值

这似乎是一个简单的数据透视表来学习.我想为我正在分组的特定值计算唯一值.

例如,我有这个:

ABC   123
ABC   123
ABC   123
DEF   456
DEF   567
DEF   456
DEF   456
Run Code Online (Sandbox Code Playgroud)

我想要的是一个数据透视表,向我展示了这个:

ABC   1
DEF   2
Run Code Online (Sandbox Code Playgroud)

我创建的简单数据透视表只给了我这个(计算了多少行):

ABC   3
DEF   4  
Run Code Online (Sandbox Code Playgroud)

但我想要的是唯一值的数量.

我真正想要做的是找出第一列中哪些值在所有行的第二列中没有相同的值.换句话说,"ABC"是"好","DEF"是"坏"

我确信有一种更简单的方法可以做到这一点,但我想我会试试枢轴表......

excel pivot-table excel-formula

134
推荐指数
4
解决办法
86万
查看次数

获取额外的数据透视表列laravel的值

我有一个phone_models,phone_problems和一个phone_model_phone_problem数据透视表.数据透视表有一个额外的列"价格".

PhoneModel:

class PhoneModel extends \Eloquent
{
    public function problems()
    {
        return $this->belongsToMany('RL\Phones\Entities\PhoneProblem')->withPivot('price');
    }
}
Run Code Online (Sandbox Code Playgroud)

PhoneProblem:

class PhoneProblem extends \Eloquent
{
    public function models()
    {
        return $this->belongsToMany('PhoneModel')->withPivot('price');
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是获得具有特定问题的特定手机的价格.

这就是我现在的方式,但我觉得Laravel有一个内置的Eloquent功能,我找不到这样做的方式更简单:

$model = $this->phoneService->getModelFromSlug($model_slug);
$problem = $this->phoneService->getProblemFromSlug($problem_slug);
Run Code Online (Sandbox Code Playgroud)

所有这一切都是从他们的slug中选择特定的模型和问题.

那么我所做的就是凭借这些凭据我得到的价格是这样的:

$row = DB::table('phone_model_phone_problem')
->where('phone_model_id', '=', $model->id)
->where('phone_problem', '=', $problem->id)
->first();
Run Code Online (Sandbox Code Playgroud)

所以现在我可以得到这样的价格,$row->price但我觉得需要一个更简单,更"Laravel"的方式来做到这一点.

php mysql many-to-many pivot-table laravel

56
推荐指数
3
解决办法
6万
查看次数

Python Pandas:使用aggfunc = count unique pivot的数据透视表

df2 = pd.DataFrame({'X' : ['X1', 'X1', 'X1', 'X1'], 'Y' : ['Y2','Y1','Y1','Y1'], 'Z' : ['Z3','Z1','Z1','Z2']})

    X   Y   Z
0  X1  Y2  Z3
1  X1  Y1  Z1
2  X1  Y1  Z1
3  X1  Y1  Z2

g=df2.groupby('X')

pd.pivot_table(g, values='X', rows='Y', cols='Z', margins=False, aggfunc='count')
Run Code Online (Sandbox Code Playgroud)

回溯(最近一次调用最后一次):... AttributeError:'Index'对象没有属性'index'

如何获得一个数据透视表,其中包含另外两列的一个DataFrame列的唯一值计数
是否有aggfunc用于计数独特之处?我应该用np.bincount()吗?

NB.我知道'系列',values_counts()但我需要一个数据透视表.


编辑:输出应该是:

Z   Z1  Z2  Z3
Y             
Y1   1   1 NaN
Y2 NaN NaN   1
Run Code Online (Sandbox Code Playgroud)

python pivot-table pandas

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

Pandas Pivot表行小计

我正在使用Pandas 0.10.1

考虑此数据帧:

Date       State   City    SalesToday  SalesMTD  SalesYTD
20130320     stA    ctA            20       400      1000
20130320     stA    ctB            30       500      1100
20130320     stB    ctC            10       500       900
20130320     stB    ctD            40       200      1300
20130320     stC    ctF            30       300       800
Run Code Online (Sandbox Code Playgroud)

我如何组合每个州的小计?

State   City  SalesToday  SalesMTD  SalesYTD
  stA    ALL          50       900      2100
  stA    ctA          20       400      1000
  stA    ctB          30       500      1100
Run Code Online (Sandbox Code Playgroud)

我尝试使用数据透视表,但我只能在列中使用小计

table = pivot_table(df, values=['SalesToday', 'SalesMTD','SalesYTD'],\
                     rows=['State','City'], aggfunc=np.sum, margins=True)
Run Code Online (Sandbox Code Playgroud)

我可以使用数据透视表在excel上实现这一点.

python pivot-table pandas

38
推荐指数
3
解决办法
4万
查看次数

如何通过laravel创建数据透视表

在Laravel 4中,当处理http://four.laravel.com/docs/eloquent#many-to-many中描述的多对多关系时,我怎样才能真正让Laravel为我创建数据透视表?

我是否需要在迁移中为所涉及的两个模型添加一些内容?我是否需要为数据透视表手动创建迁移?或者Laravel如何知道创建数据透视表?

到目前为止,我所做的就是将belongsToMany信息添加到两个相应的模型中,即

class User extends Eloquent 
{
    public function roles()
    {
         return $this->belongsToMany('Role');
     }
 }
Run Code Online (Sandbox Code Playgroud)

但是,这不会触发数据透视表的创建?我错过了什么步骤?

pivot-table laravel eloquent laravel-4

34
推荐指数
6
解决办法
4万
查看次数

如何使用Eloquent过滤数据透视表?

我正在使用我正在使用的项目上的数据透视表来获取用户的作品.

例如:User::find(1)->works给我ID为1的用户的作品.

问题是我想用额外的Pivot数据过滤这个结果.

就像是:

User::find(1)->works->pivot->where('active',1)->get();
Run Code Online (Sandbox Code Playgroud)

其中active是我在user_works数据透视表中设置的列.

这是我的User.php模型的相关部分:

<?php

class User extends Cartalyst\Sentry\Users\Eloquent\User {

    public function works() {
        return $this->belongsToMany('Work','user_works')->withPivot('active')->withTimestamps();
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的Work.php模型的相关部分:

<?php

class Work extends Eloquent {

    public function users() {
        return $this->belongsToMany('User','user_works')->withPivot('active')->withTimestamps();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的数据透视表模式:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateUserWorksTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('user_works', function(Blueprint $table) {
            $table->increments('id');

            $table->integer('user_id')->unsigned()->default(0);
            $table->integer('work_id')->unsigned()->default(0);

            $table->enum('active',array('0','1'))->default(1);

            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->foreign('work_id')->references('id')->on('works')->onDelete('cascade');

            $table->timestamps();
        });
    }

    /**
     * Reverse the …
Run Code Online (Sandbox Code Playgroud)

filtering pivot-table laravel eloquent laravel-4

29
推荐指数
3
解决办法
5万
查看次数

将矩阵转换为3列表('反向枢轴','展开','展平','正常化')

我需要FIRST在表格中转换Excel矩阵LATER:

第一:

    P1  P2  P3  P4
F1  X
F2  X   X
F3      X       X
F4      X   X
Run Code Online (Sandbox Code Playgroud)

稍后:

F   P   VALUE
F1  P1  X
F1  P2
F1  P3
F1  P4
F2  P1  X
F2  P2  X
F2  P3
F2  P4
F3  P1
F3  P2  X
F3  P3
F3  P4  X
F4  P1
F4  P2  X
F4  P3  X
F4  P4
Run Code Online (Sandbox Code Playgroud)

excel pivot-table unpivot matrix powerquery

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