Impala SELECT语句用于从数据库中的一个或多个表中提取数据。 此查询以表的形式返回数据。
语句
以下是Impala select语句的语法。
SELECT column1, column2, columnN from table_Name;
这里,column1,column2 …是您要获取其值的表的字段。 如果要获取字段中的所有可用字段,则可以使用以下语法 –
SELECT * FROM table_name;
例
假设我们在Impala中有一个名为customers的表,其中包含以下数据 –
IDNAMEAGEADDRESSSALARY------------------------------1Ramesh32AhmedaBad200002Khilan25Delhi150003Hardik27Bhopal400004Chaitali25Mumbai350005kaushik23Kota300006Komal22Mp32000
您可以使用select语句获取customers表的所有记录的id,name和age,如下所示 –
[quickstart.cloudera:21000] > select id, name, age from customers;
在执行上述查询时,Impala从指定表中获取所有记录的id,name,age,并显示它们,如下所示。
Query: select id,name,age from customers+----+----------+-----+| id | name| age || 1| Ramesh| 32|| 2| Khilan| 25|| 3| Hardik| 27|| 4| Chaitali | 25|| 5| kaushik| 23|| 6| Komal| 22|+----+----------+-----+Fetched 6 row(s) in 0.66s
您还可以使用select查询从customers表中获取所有记录,如下所示。
[quickstart.cloudera:21000] > select name, age from customers;Query: select * from customers
在执行上述查询时,Impala从指定的表中提取和显示所有记录,如下所示。
+----+----------+-----+-----------+--------+| id | name| age | address| salary |+----+----------+-----+-----------+--------+| 1| Ramesh| 32| Ahmedabad | 20000|| 2| Khilan| 25| Delhi| 15000|| 3| Hardik| 27| Bhopal| 40000|| 4| Chaitali | 25| Mumbai| 35000|| 5| kaushik| 23| Kota| 30000|| 6| Komal| 22| MP| 32000|+----+----------+-----+-----------+--------+Fetched 6 row(s) in 0.66s

使用Hue获取记录
打开Impala查询编辑器并键入其中的select语句。 然后单击执行按钮,如下面的屏幕截图所示。
执行查询后,如果向下滚动并选择“结果”选项卡,则可以看到指定表的记录列表,如下所示。
静态sql语句显示查询结果
第一步:选出1月份工资:Select 姓名,工资 as 1,0 as 2,0 as 3***,,0 as 12 from 工资表 where 月份=1选出2月份工资:Select 姓名,0 as 1,工资 as 2,0 as 3***,0 as 12 from 工资表 where 月份=2********* 同样方法 一直到12月工资;Select 姓名,0 as 1,0 as 2,0 as 3***,工资 as 12 from 工资表 where 月份=12第二步:通过union合并12张表:(1月份工资) union (2月份工资) union (3月份工资)**** union (12月份工资)第三步:通过按姓名进行分组汇总:select 姓名,sum(1),sum(2),sum(3)***,sum(12) from ((1月份工资) union (2月份工资) union (3月份工资)**** union (12月份工资)) group by 姓名调试时 一定要细心,能满足你的要求。 我帮人写过这类数据库。
sql分组查询
-- SQLSERVER 语句 select ,(case when 0 then(select count(*)from record r1 where 1 = and = 0) else(select count(*) from record r1 where 2 = and = 0) end) as 及格,(case when 0 then(select count(*)from record r1 where 1 = and = 1) else(select count(*) from record r1 where 2 = and = 1) end) as 良,(case when 0 then(select count(*)from record r1 where 1 = and = 2) else(select count(*) from record r1 where 2 = and = 2) end) as 优秀from CLASS c ---ORACLE 写法 select , (decode(,0,(select count(*)from record r1 where 1 = and = 0), (select count(*) from record r1 where 2 = and = 0)))jige, (decode(,0,(select count(*)from record r1 where 1 = and = 1), (select count(*) from record r1 where 2 = and = 1)))liang, (decode(,0,(select count(*)from record r1 where 1 = and = 2), (select count(*) from record r1 where 2 = and = 2)))youxiu from CLASS c
请写出以下操作的SQL语句,根据下表创建数据库S
1. Createtable S( Sno char(6)primarykey not null, Sname char(10)notnull, Ssexchar(1) not null check(Ssexin(F,M)) ,Sbirth DATE not null);2. insert into S values(,王燕,F,1985-2-1)3. create view S_view1 as select * from S where Ssex = F;
发表评论