Я написал небольшой скрипт bash ниже, и он работает по назначению, но я добавил пару комментариев и новых строк для чтения, что нарушает код. Удаление комментариев и новых строк должно сделать его действительным скриптом.Поддерживает ли циклы поддержки sqlite3?
### read all measurements from the database and list each value only once
sqlite3 -init /tmp/timeout /tmp/testje.sqlite \
'select distinct measurement from errors order by measurement;' |
### remove the first line of stdout as this is a notification rather than intended output
sed '1d' |
### loop though all found values
while read error; do
### count the number of occurences in the original table and print that
sqlite3 -init /tmp/timeout /tmp/testje.sqlite \
"select $error,count(measurement) from errors where measurement = '$error' ;"
done
Результат таков:
134 1
136 1
139 2
159 1
Вопрос: Можно ли с sqlite3
перевести while
-loop на заявления SQL? Другими словами, поддерживает ли sqlite3 какой-то for
-loop, чтобы просмотреть результаты предыдущего запроса?
Теперь я знаю, что sqlite3
- очень ограниченная база данных, и, скорее всего, то, что я хочу, слишком сложно для него. Я искал для него, но я действительно нитвит базы данных, и хиты, которые я получаю до сих пор, либо находятся в другой базе данных, либо решают совершенно другую проблему.
Самый простой ответ (который я не надеюсь на BTW): «sqlite3 не поддерживает петли».
Это похоже на работу! Я не понимал, что могу использовать «GROUP» в сочетании с count(). Я довольно привык к тому, чтобы скрыть все вместе, отсюда мой маленький сценарий. – jippie