在 athena/presto 中有没有办法根据条件获取列名并在 group by 中使用它?
SHOW COLUMNS FROM {table_name}
Run Code Online (Sandbox Code Playgroud)
此查询为我提供了列详细信息。但我只想在其他查询中使用列名。表的结构看起来像
name_of_service | cost | usage_date | user_123 | user_212 | user_342 | user_5832 | ...
Run Code Online (Sandbox Code Playgroud)
等等。大约有 500 列
我正在查看的用例看起来有点像这样 -
SELECT SUM(cost), {column_names_which_start_with_user}
FROM {db}
GROUP BY cost, {column_names_which_start_with_user}
Run Code Online (Sandbox Code Playgroud)
我无法控制填充数据库,并且每个月都有 100 个名称更改的列。有没有办法做到这一点?
ifstream fp;
fp.open(path, ios::in | ios::binary); //path is the path of the DICOM file I want to read
fstream output;
output.open("C:\\Users\\Z00\\dump.txt", ios::in | ios::out | ios::trunc | ios::binary);
if (fp.is_open())
{
while (getline(fp, rbuffer))
output << rbuffer;
fp.close();
}
Run Code Online (Sandbox Code Playgroud)
我使用上面的代码从二进制模式读取DICOM文件到txt文件.
现在如果我使用记事本或任何其他文档查看器打开文本文件,它会显示十六进制编辑器在打开DICOM文件时显示的完全相同的内容.
现在我想操纵文本文档中的数据.所以我尝试将文本文件的内容打印到控制台中,但它打印出完全的乱码.
为什么?
如果我想访问和操作二进制数据,我该怎么办呢?