we have a table that is being provided to us where there are lots of duplicated data in then rows and the only difference is opening and closing times for a certain day of the week - data is provided in this way and the client will not chnage things from their end.
import tensorflow as tf
slim = tf.contrib.slim
images = tf.placeholder(tf.float32, shape=(None, None, None, 1))
NUM_CLASSES = 18
scope = 'CifarNet'
with tf.variable_scope(scope, 'CifarNet', [images, NUM_CLASSES]):
net = slim.conv2d(images, 64, [5, 5], scope='conv1')
net = slim.max_pool2d(net, [2, 2], 2, scope='pool1')
net = tf.nn.lrn(net, 4, bias=1.0, alpha=0.001/9.0, beta=0.75, name='norm1')
net = slim.conv2d(net, 64, [5, 5], scope='conv2')
net = tf.nn.lrn(net, 4, bias=1.0, alpha=0.001/9.0, beta=0.75, name='norm2')
net = slim.max_pool2d(net, [2, 2], 2, scope='pool2')
net = slim.flatten(net)
net = slim.fully_connected(net, 384, scope='fc3')
How could the information be stored/presented in the following way using TSQL so that I can retrieve the data from a table or preferably a view - so I don't have to run the data through e.g. a PHP program to do the formating for me? I deally of the data can be in a format that we can read straight from a table/view that would be ideal/
Dense
I know exactly how many columns I will need fro opening closing time i.e. 5 columns for each day of the week so creating the table to store the information is not an issue and does not change
Kind regards Taki
答案 0 :(得分:0)
此查询效率不高,我不建议直接从SQL查询中使用此格式,但应该可以执行以下操作,假设您的数据继续遵循上面发布的相同格式。
SELECT DISTINCT
Col1,
Col2,
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Mon'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Mon'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Mon'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Mon'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Mon'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Tue'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Tue'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Tue'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Tue'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Tue'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Wed'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Wed'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Wed'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Wed'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Wed'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Thur'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Thur'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Thur'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Thur'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Thur'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Fri'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Fri'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Fri'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Fri'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Fri'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sat'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sat'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sat'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sat'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sat'),
(SELECT TOP 1 Col3 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sun'),
(SELECT TOP 1 Col4 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sun'),
(SELECT TOP 1 Col5 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sun'),
(SELECT TOP 1 Col6 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sun'),
(SELECT TOP 1 Col7 FROM ShopTable st_inner WHERE st_inner.Col1 = st.Col1 AND st_inner.Col3 = 'Sun')
答案 1 :(得分:0)
我没有办法测试这个查询,但基本上你需要这样的东西:
SELECT mon.col2, MonStart, MonEnd, TueStart, ...
FROM
(
SELECT distinct Col2,
CASE col3 WHEN 'Mon' THEN Col5 ELSE NULL END as MonStart,
CASE col3 WHEN 'Mon' THEN Col7 ELSE NULL END as MonEnd,
FROM table
) mon
INNER JOIN
(
SELECT distinct Col2,
CASE col3 WHEN 'Tue' THEN Col5 ELSE NULL END as TueStart,
CASE col3 WHEN 'Tue' THEN Col7 ELSE NULL END as TueEnd,
FROM table
) tue on mon.col2 = tue.col2
INNR JOIN
...
如评论中所述,您不需要额外的列来打开/关闭状态,只需为您的列添加正确的名称。
答案 2 :(得分:0)
这应该是你正在寻找的......
IF OBJECT_ID('tempdb..#TestData', 'U') IS NOT NULL
DROP TABLE #TestData;
CREATE TABLE #TestData (
Col2 CHAR(5) NOT NULL,
Col3 CHAR(3) NOT NULL,
Col4 CHAR(4) NOT NULL,
Col5 TIME(0) NOT NULL,
Col6 CHAR(5) NOT NULL,
Col7 TIME(0) NOT NULL
);
INSERT #TestData (Col2, Col3, Col4, Col5, Col6, Col7) VALUES
('Shop1', 'Mon', 'open', '6am ', 'Close', '4pm'),
('Shop1', 'Tue', 'Open', '6am ', 'Close', '5pm'),
('shop1', 'Wed', 'Open', '6am ', 'Close', '4pm'),
('Shop2', 'Mon', 'open', '10am', 'Close', '3pm'),
('Shop2', 'Tue', 'open', '11am', 'Close', '2pm');
-- SELECT * FROM #TestData td;'
--============================================================
SELECT
Col1 = ROW_NUMBER() OVER (ORDER BY td.Col2),
td.Col2,
Col3 = MAX(CASE WHEN dn.DayNum = 1 THEN td.Col3 END),
Col4 = MAX(CASE WHEN dn.DayNum = 1 THEN 'open' END),
Col5 = MAX(CASE WHEN dn.DayNum = 1 THEN col5 END),
Col6 = MAX(CASE WHEN dn.DayNum = 1 THEN 'close' END),
Col7 = MAX(CASE WHEN dn.DayNum = 1 THEN col7 END),
Col8 = MAX(CASE WHEN dn.DayNum = 2 THEN td.Col3 END),
Col9 = MAX(CASE WHEN dn.DayNum = 2 THEN 'open' END),
Col10 = MAX(CASE WHEN dn.DayNum = 2 THEN col5 END),
Col11 = MAX(CASE WHEN dn.DayNum = 2 THEN 'close' END),
Col12 = MAX(CASE WHEN dn.DayNum = 2 THEN col7 END),
Col13 = MAX(CASE WHEN dn.DayNum = 3 THEN td.Col3 END),
Col14 = MAX(CASE WHEN dn.DayNum = 3 THEN 'open' END),
Col15 = MAX(CASE WHEN dn.DayNum = 3 THEN col5 END),
Col16 = MAX(CASE WHEN dn.DayNum = 3 THEN 'close' END),
Col17 = MAX(CASE WHEN dn.DayNum = 3 THEN col7 END),
Col18 = MAX(CASE WHEN dn.DayNum = 4 THEN td.Col3 END),
Col19 = MAX(CASE WHEN dn.DayNum = 4 THEN 'open' END),
Col20 = MAX(CASE WHEN dn.DayNum = 4 THEN col5 END),
Col21 = MAX(CASE WHEN dn.DayNum = 4 THEN 'close' END),
Col22 = MAX(CASE WHEN dn.DayNum = 4 THEN col7 END),
Col23 = MAX(CASE WHEN dn.DayNum = 5 THEN td.Col3 END),
Col24 = MAX(CASE WHEN dn.DayNum = 5 THEN 'open' END),
Col25 = MAX(CASE WHEN dn.DayNum = 5 THEN col5 END),
Col26 = MAX(CASE WHEN dn.DayNum = 5 THEN 'close' END),
Col27 = MAX(CASE WHEN dn.DayNum = 5 THEN col7 END)
FROM
#TestData td
CROSS APPLY ( VALUES (CASE td.Col3
WHEN 'Mon' THEN 1
WHEN 'Tue' THEN 2
WHEN 'Wed' THEN 3
WHEN 'Thu' THEN 4
WHEN 'Fri' THEN 5
END) ) dn (DayNum)
GROUP BY
td.Col2;
结果...
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Col10 Col11 Col12 Col13 Col14 Col15 Col16 Col17 Col18 Col19 Col20 Col21 Col22 Col23 Col24 Col25 Col26 Col27
-------------------- ----- ---- ---- ---------------- ----- ---------------- ---- ---- ---------------- ----- ---------------- ----- ----- ---------------- ----- ---------------- ----- ----- ---------------- ----- ---------------- ----- ----- ---------------- ----- ----------------
1 Shop1 Mon open 06:00:00 close 16:00:00 Tue open 06:00:00 close 17:00:00 Wed open 06:00:00 close 16:00:00 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
2 Shop2 Mon open 10:00:00 close 15:00:00 Tue open 11:00:00 close 14:00:00 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL