我是新来的SQL,我坚持的东西,肯定很容易解决,但是让我疯狂。我有一个巨大的AS400 txt数据导出,我需要从中获取一些数据。使用单个查询,我可以得到正确的数字,但是我想知道是否有办法编写一个查询,该查询给出了一个包含四个结果的表,每个查询都在一个列中。UNION ALL在同一个表中导致不同的列?
这些都是四个查询:
SELECT COUNT([DATA1]) FROM (SELECT DISTINCT [DATA1] FROM STATUS);
SELECT COUNT([DATA2]) FROM (SELECT DISTINCT [DATA1], [DATA2], [DATA3] FROM STATUS);
SELECT COUNT([DATA3]) FROM (SELECT DISTINCT [DATA1], [DATA2], [DATA3], [TAL] FROM STATUS);
SELECT SUM([UNITS]) AS TOTAL FROM STATUS;
试图与UNION ALL,但所有的结果在同一列中显示出来。
有没有办法做到这一点?在一个查询中获取四个数字,并将每个数字导入不同的列。
非常感谢您的帮助和时间。
你能告诉我们您预期的输出? – balaji
不相关,但:第一个查询可以简化为'select count(distinct data1)from status;'(尽管我希望SQL Server足够聪明,可以自己做) –
您好,感谢您的回复。 DISTINCT是必要的,因为在文档的列中,相同的数字重复多次。这个想法是要获得该列中存储了多少个唯一的数字。例如,假设第1列有:第10个重复五次,第12个重复七次。我需要获得的是列中存储了多少个唯一数字的计数。在这个例子中,两个。 – ElCodificadorWey