在SQL GROUP BY中,使用带有两个或多个变量的Stata进行分组

在SQL GROUP BY中,使用带有两个或多个变量的Stata进行分组,sql,group-by,stata,Sql,Group By,Stata,在SQL中,可以使用多个变量进行分组: SELECT a, b, COUNT(*) FROM t GROUP BY a, b 我们得到的是一个表,其中b层嵌套在a层中 如何使用Stata执行此操作 a) windows中的输出? b) 存储为文件?如果只有两个变量,并且不需要两个变量,则可以执行以下操作将输出写入文件: tabulate a b 如果要将输出写入文件,或者如果有两个以上的分组变量,可以执行以下操作: contract a b 在屏幕上打印数据: sort a list, s

在SQL中,可以使用多个变量进行分组:

SELECT a, b, COUNT(*)
FROM t
GROUP BY a, b
我们得到的是一个表,其中b层嵌套在a层中

如何使用Stata执行此操作 a) windows中的输出?
b) 存储为文件?

如果只有两个变量,并且不需要两个变量,则可以执行以下操作将输出写入文件:

tabulate a b
如果要将输出写入文件,或者如果有两个以上的分组变量,可以执行以下操作:

contract a b
在屏幕上打印数据:

sort a
list, sepby(a)
将数据以Stata格式(.dta)保存到文件中

。。。或指向以制表符分隔的ascii文件

outsheet using results.csv
如果要压缩数据,请在屏幕上列出结果,然后返回原始数据,您可以使用
preserve
restore
。前者在给定点“冻结”数据,后者允许返回到该点

preserve
contract a b
list
restore

非常感谢。合同是我搜索的命令。它也适用于3个变量。顺便问一下:是否有一个类似于contract的命令,可以在不创建文件的情况下将结果放在windows上?@giordano:当然可以。如上所示,您必须首先使用
合同
。然后您可以使用
列表
在屏幕上打印合同数据。谢谢。这意味着我必须存储原始数据,使用合同构建结果,列出结果并清除文件以获得原始数据。我认为有一个命令可以将结果直接显示在屏幕上。非常感谢您的帮助。我已经习惯了这些命令,现在这些都是琐碎的。
preserve
contract a b
list
restore